<sstream>
, <syncstream>
: Buffer types assume that allocated pointers are not modified by users
#4268
Labels
bug
Something isn't working
Describe the bug
Currently, MSVC STL's
basic_stringbuf
relies on that theeback()
pointer points to the beginning of the allocated buffer.STL/stl/inc/sstream
Lines 495 to 497 in e077eb6
Likewise,
basic_syncbuf
requirespbase()
to behave the same way.STL/stl/inc/syncstream
Line 247 in e077eb6
However, the pointers returned by these functions can be modified by users via
setg
/setp
functions, which means these conditions can't be considered as invariants maintained by the implementation.Command-line test case
STL/tests/libcxx/expected_results.txt
Lines 1103 to 1107 in e077eb6
Expected behavior
These tests pass.
STL version
e077eb6
(Probably in all versions where
basic_stringbuf
orbasic_syncbuf
is available.)Additional context
Not sure whether this can be fixed without breaking ABI. #4239 may be related, but doesn't fix any part of this issue.
The text was updated successfully, but these errors were encountered: