On Tue, Apr 18, 2017 at 3:23 PM, Mark Wielaard <m...@klomp.org> wrote:
> The fix for PR demangler/70909 and 67264 (endless demangler recursion)
> catches when a demangle_component is printed in a cycle. But that doesn't
> protect the call stack blowing up from non-cyclic nested types printed
> recursively through d_print_comp. This can happen by a (very) long mangled
> string that simply creates a very deep pointer or qualifier chain. Limit
> the recursive d_print_comp call depth for a d_print_info to 1K nested
> types.
>
> libiberty/ChangeLog:
>
>         * cp-demangle.c (MAX_RECURSION_COUNT): New constant.
>         (struct d_print_info): Add recursion field.
>         (d_print_init): Initialize recursion.
>         (d_print_comp): Check and update d_print_info recursion depth.

I'm probably missing something, but this kind of seems like an
arbitrary limit.  It's possible to imagine a rather unlikely valid
symbol that will no longer be demangled.  Why do we want to do this?
What bug are we fixing?

Ian

Reply via email to