[Bug libstdc++/89446] [7/8 Regression] __builtin_constant_p expression crashes in char_traits::compare

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Feb 23 03:02:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89446

--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Author: redi
Date: Sat Feb 23 03:01:59 2019
New Revision: 269148

URL: https://gcc.gnu.org/viewcvs?rev=269148&root=gcc&view=rev
Log:
PR libstdc++/89446 fix null pointer dereference in char_traits

        PR libstdc++/89446
        * include/bits/char_traits.h (__constant_char_array): Check index is
        in range before dereferencing.
        (char_traits<char>::compare, char_traits<char>::find)
        (char_traits<char8_t>::compare, char_traits<char8_t>::find): Return
        immediately if n is zero.
        (char_traits<wchar_t>::compare, char_traits<wchar_t>::find): Likewise.
        Remove workarounds for PR 67026.
        * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
        New test.
        * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
        New test.

Added:
   
trunk/libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/89446.cc
   
trunk/libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/bits/char_traits.h


More information about the Gcc-bugs mailing list