Fix several crashes of C++ demangler on fuzzed input.
authorMikhail Maltsev <maltsevm@gmail.com>
Sat, 28 Nov 2015 16:39:29 +0000 (16:39 +0000)
committerPedro Alves <palves@redhat.com>
Sat, 28 Nov 2015 16:39:29 +0000 (16:39 +0000)
commitd81bf7ddc2ad497037fbfde5d15cfa8d81a9e959
tree926b0c2c076cb449874747186878d3da93564104
parent6a8796db3691b9a53dc5475eaec5388bc1af115d
Fix several crashes of C++ demangler on fuzzed input.

libiberty/
* cp-demangle.c (d_dump): Fix syntax error.
(d_identifier): Adjust type of len to match d_source_name.
(d_expression_1): Fix out-of-bounds access.  Check code variable for
NULL before dereferencing it.
(d_find_pack): Do not recurse for FIXED_TYPE, DEFAULT_ARG and NUMBER.
(d_print_comp_inner): Add NULL pointer check.
* cp-demangle.h (d_peek_next_char): Define as inline function when
CHECK_DEMANGLER is defined.
(d_advance): Likewise.
* testsuite/demangle-expected: Add new testcases.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225727 138bc75d-0d04-0410-961f-82ee72b054a4
libiberty/ChangeLog
libiberty/cp-demangle.c
libiberty/cp-demangle.h
libiberty/testsuite/demangle-expected