aboutsummaryrefslogtreecommitdiff
path: root/libiberty/testsuite/demangle-expected
diff options
context:
space:
mode:
authorGeoffrey Keating <geoffk@geoffk.org>2006-12-21 01:32:48 +0000
committerGeoffrey Keating <geoffk@geoffk.org>2006-12-21 01:32:48 +0000
commit6ef6358e5115c85b60000afef572b2bcddf8766d (patch)
treee7d70bca09237d14b50763f72ccb495080ee9681 /libiberty/testsuite/demangle-expected
parent5f9aac7b0120e355069543a6f11aeb79c4053eca (diff)
downloadgdb-6ef6358e5115c85b60000afef572b2bcddf8766d.zip
gdb-6ef6358e5115c85b60000afef572b2bcddf8766d.tar.gz
gdb-6ef6358e5115c85b60000afef572b2bcddf8766d.tar.bz2
* cp-demangle.h: Add comment explaining what to do to avoid
overrunning string. (d_check_char): New. (d_next_char): Don't advance past trailing '\0'. * cp-demangle.c (cplus_demangle_mangled_name): Use d_check_char. (d_nested_name): Likewise. (d_special_name): Likewise. (d_call_offset): Likewise. (d_function_type): Likewise. (d_array_type): Likewise. (d_pointer_to_member_type): Likewise. (d_template_param): Likewise. (d_template_args): Likewise. (d_template_arg): Likewise. (d_expr_primary): Likewise. (d_local_name): Likewise. (d_substitution): Likewise. (d_ctor_dtor_name): Use d_advance rather than d_next_char. * testsuite/test-demangle.c: Include sys/mman.h. (MAP_ANONYMOUS): Define. (protect_end): New. (main): Use protect_end. * testsuite/demangle-expected: Add testcases for overrunning the end of the string.
Diffstat (limited to 'libiberty/testsuite/demangle-expected')
-rw-r--r--libiberty/testsuite/demangle-expected22
1 files changed, 22 insertions, 0 deletions
diff --git a/libiberty/testsuite/demangle-expected b/libiberty/testsuite/demangle-expected
index 3f5622f..56d9f89 100644
--- a/libiberty/testsuite/demangle-expected
+++ b/libiberty/testsuite/demangle-expected
@@ -3816,3 +3816,25 @@ f
SASDASDFASDF_sdfsdf
SASDASDFASDF_sdfsdf
SASDASDFASDF_sdfsdf
+# These are all cases of invalid manglings where the demangler would read
+# past the end of the string.
+# d_name wasn't honouring a NULL from d_substitution
+--format=gnu-v3
+_ZSA
+_ZSA
+# d_expr_primary wasn't honouring NULL from cplus_demangle_mangled_name
+--format=gnu-v3
+_ZN1fIL_
+_ZN1fIL_
+# d_operator_name was taking two characters in a row
+--format=gnu-v3
+_Za
+_Za
+# d_prefix wasn't honouring NULL from d_substitution
+--format=gnu-v3
+_ZNSA
+_ZNSA
+# d_prefix wasn't honouring NULL from d_template_param
+--format=gnu-v3
+_ZNT
+_ZNT