diff options
author | Mark Wielaard <mark@klomp.org> | 2016-11-15 19:31:59 +0000 |
---|---|---|
committer | Mark Wielaard <mark@klomp.org> | 2016-11-18 11:06:18 +0100 |
commit | ddc5804ebd4b2be29ad4e3e259f5c6e907f34f26 (patch) | |
tree | 9c865971acdc8f9f31dcab1d34e4e88c98569507 /libiberty/testsuite | |
parent | 1706852c3c6c1d39f949c933d37647d02509b9cb (diff) | |
download | binutils-ddc5804ebd4b2be29ad4e3e259f5c6e907f34f26.zip binutils-ddc5804ebd4b2be29ad4e3e259f5c6e907f34f26.tar.gz binutils-ddc5804ebd4b2be29ad4e3e259f5c6e907f34f26.tar.bz2 |
libiberty: demangler crash with missing :? or fold expression component.
When constructing an :? or fold expression that requires a third
expression only the first and second were explicitly checked to
not be NULL. Since the third expression is also required in these
constructs it needs to be explicitly checked and rejected when missing.
Otherwise the demangler will crash once it tries to d_print the
NULL component. Added two examples to demangle-expected of strings
that would crash before this fix.
Found by American Fuzzy Lop (afl) fuzzer.
Diffstat (limited to 'libiberty/testsuite')
-rw-r--r-- | libiberty/testsuite/demangle-expected | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libiberty/testsuite/demangle-expected b/libiberty/testsuite/demangle-expected index 236161c..af491d8 100644 --- a/libiberty/testsuite/demangle-expected +++ b/libiberty/testsuite/demangle-expected @@ -4626,3 +4626,11 @@ _$_H1R # Could crash _Q8ccQ4M2e. _Q8ccQ4M2e. + +# fold-expression with missing third component could crash. +_Z12binary_rightIJLi1ELi2ELi3EEEv1AIXfRplT_LiEEE +_Z12binary_rightIJLi1ELi2ELi3EEEv1AIXfRplT_LiEEE + +# ?: expression with missing third component could crash. +AquT_quT_4mxautouT_4mxxx +AquT_quT_4mxautouT_4mxxx |