https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116692

            Bug ID: 116692
           Summary: demangler crash on valid input
           Product: gcc
           Version: 14.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: demangler
          Assignee: unassigned at gcc dot gnu.org
          Reporter: djnz00 at gmail dot com
  Target Milestone: ---

demangler crashes with SEGV on this valid input:

_ZN4ZmFnIFvPN10ZmPolyHashIN6ZmListIN4Zdb_7Object_IN3Zdf2DB7BlkDataEEE10ZmListNodeIS7_12ZmListShadowILb1E15ZmList_DefaultsEEE4NodeE10ZmHashLockI8ZmNoLock12ZmHashHeapIDIXadL_ZN9ZdbHeapIDIS6_E2idEvEE20ZmPolyCache_DefaultsXadL_ZNSK_6HeapIDEvEEEEE6Hash__ILj0ESE_SE_E1T4NodeEEE2fnIZNS4_6SeriesINS4_12DeltaDecoderINS4_7DecoderEEEE5writeIJ10ZuConstantIjLj0EEEEEN6ZuIfT_IXeqsZT_LNS10_Ut_E1EEvE1TES_IFv5ZmRefINS4_7Writer_ISZ_8ZmHeap__IXadL_ZNS4_13Writer_HeapIDEvEELj104ELj8ELb0EElEEEEES_IFvvEEDpT_EUlS18_INS4_7BlkDataEEE_EENS14_IXtlNSU_10IsCallableIT_EEEESU_E1TEOS1O_

Program received signal SIGSEGV, Segmentation fault.
Downloading source file
/usr/src/debug/binutils/binutils-gdb/libiberty/cp-demangle.c
0x00007ffff7f1c3aa in d_lookup_template_argument (                              
    dpi=dpi@entry=0x7fffffff4200, dc=dc@entry=0x7fffffff62d0)
    at /usr/src/debug/binutils/binutils-gdb/libiberty/cp-demangle.c:4748
4748        (d_right (dpi->templates->template_decl),
(gdb) l
4743          d_print_error (dpi);
4744          return NULL;
4745        }
4746            
4747      return d_index_template_argument
4748        (d_right (dpi->templates->template_decl),
4749         dc->u.s_number.number);
4750    }
4751    
4752    /* Returns a template argument pack used in DC (any will do), or NULL. 
*/
(gdb) print dpi
$1 = (struct d_print_info *) 0x7fffffff4200
(gdb) print dpi->templates
$2 = (struct d_print_template *) 0x7fffffff3530
(gdb) print dpi->templates->template_decl
$3 = (const struct demangle_component *) 0x0

Reply via email to