[PATCH] PR libstdc++/80893 Fix null dereference in vector<bool>
Jonathan Wakely
jwakely@redhat.com
Sat Jun 17 12:12:00 GMT 2017
On 31/05/17 13:45 +0100, Jonathan Wakely wrote:
>vector<bool> does addressof(*ptr) where ptr is returned by
>allocate(n), but if n==0 that pointer might not be dereferencable.
>
>While testing the fix I also found some bugs in the
>__gnu_test::PointerBase helper that needed correcting.
>
> PR libstdc++/80893
> * include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
> null pointer dereference when size is zero.
> * testsuite/23_containers/vector/bool/80893.cc: New.
> * testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
> Add non-explicit constructor from nullptr.
> (PointerBase::derived() const): Add const-qualified overload.
>
>Tested powerpc64le-linux, committed to trunk.
The new test fails in C++98 modes, as shown at https://gcc.gnu.org/ml/gcc-testresults/2017-06/msg01833.html
Fixed like so, committed to trunk.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.txt
Type: text/x-patch
Size: 773 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20170617/86ea6d38/attachment.bin>
More information about the Libstdc++
mailing list