https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87787
--- Comment #13 from Jonathan Wakely <redi at gcc dot gnu.org> --- Author: redi Date: Fri Feb 8 14:16:28 2019 New Revision: 268694 URL: https://gcc.gnu.org/viewcvs?rev=268694&root=gcc&view=rev Log: PR libstdc++/87787 avoid undefined null args to memcpy and memmove The C++ char_traits and ctype APIs do not disallow null pointer arguments, so we need explicit checks to ensure we don't forward null pointers to memcpy or memmove. Backport from mainline 2019-01-07 Jonathan Wakely <jwak...@redhat.com> PR libstdc++/87787 * include/bits/char_traits.h (char_traits::move): Do not pass null pointers to memmove. * include/bits/locale_facets.h (ctype<char>::widen(const char*, const char*, char*)): Do not pass null pointers to memcpy. (ctype<char>::narrow(const char*, const char*, char, char*)): Likewise. (ctype<char>::do_widen(const char*, const char*, char*)): Likewise. (ctype<char>::do_narrow(const char*, const char*, char, char*)): Likewise. Modified: branches/gcc-8-branch/libstdc++-v3/ChangeLog branches/gcc-8-branch/libstdc++-v3/include/bits/char_traits.h branches/gcc-8-branch/libstdc++-v3/include/bits/locale_facets.h