[Bug demangler/67264] Infinite recursion of demangler on fuzzed input

2017-03-08 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67264
Bug 67264 depends on bug 70909, which changed state.

Bug 70909 Summary: Libiberty Demangler segfaults (4)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70909

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

[Bug demangler/67264] Infinite recursion of demangler on fuzzed input

2017-03-08 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67264

Markus Trippelsdorf  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||trippels at gcc dot gnu.org
 Resolution|--- |FIXED

--- Comment #5 from Markus Trippelsdorf  ---
Fixed.

[Bug demangler/67264] Infinite recursion of demangler on fuzzed input

2017-03-08 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67264

--- Comment #4 from Markus Trippelsdorf  ---
Author: trippels
Date: Wed Mar  8 14:28:38 2017
New Revision: 245978

URL: https://gcc.gnu.org/viewcvs?rev=245978=gcc=rev
Log:
Fix PR demangler/70909 and 67264 (endless demangler recursion)

ChangeLog:

   PR demangler/70909
   PR demangler/67264
   * include/demangle.h: Add d_printing to struct demangle_component
   and pass struct demangle_component as non const.

libiberty/ChangeLog:

   PR demangler/70909
   PR demangler/67264
   * cp-demangle.c: Fix endless recursion. Pass
   struct demangle_component as non const.
   (d_make_empty): Initialize variable.
   (d_print_comp_inner): Limit recursion.
   (d_print_comp): Decrement variable.
   * cp-demint.c (cplus_demangle_fill_component): Initialize
   variable.
   (cplus_demangle_fill_builtin_type): Likewise.
   (cplus_demangle_fill_operator): Likewise.
   * testsuite/demangle-expected: Add tests.

Modified:
trunk/ChangeLog
trunk/include/demangle.h
trunk/libiberty/ChangeLog
trunk/libiberty/cp-demangle.c
trunk/libiberty/cp-demint.c
trunk/libiberty/testsuite/demangle-expected