[libcxx-commits] [PATCH] D146294: [libcxx] Fix crash in std::stringstream with payload >= INT_MAX

Azat Khuzhin via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Sun Apr 9 08:41:45 PDT 2023


azat added inline comments.


================
Comment at: libcxx/include/sstream:475
     {
         typename string_type::size_type __sz = __str_.size();
         __hm_ = const_cast<char_type*>(__str_.data()) + __sz;
----------------
Mordante wrote:
> This type is most likely `std::size_t`, and `__pbump` takes a `streamsize` which is signed. Why is this overflow save?
Yeah, you are right, so it seems that both places needs this while loop, or maybe I could introduce another helper instead of using this loop? (asking because I'm not sure about adding new symbols to the libc++, since this can change ABI, though it is protected)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D146294/new/

https://reviews.llvm.org/D146294



More information about the libcxx-commits mailing list