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

            Bug ID: 82890
           Summary: Demangler segfaults
           Product: gcc
           Version: 7.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: demangler
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ahoward at foxguardsolutions dot com
  Target Milestone: ---

Demangler causes a segmentation fault when demangling name:
"_ZN5boost2di6v1_0_19providers15stack_over_heap3getIN3FGS9ICSUpdate7Parsing11PatchParserEJNS1_4core10successful8any_typeIS8_NS9_8injectorINS1_6configENS9_4poolINS1_3aux9type_listIJEEEEEJZNKS1_6detailUlT_E_clINSC_ISD_SI_JZNKSM_INSC_ISD_SI_JZNKSM_INSC_ISD_SI_JNS9_10dependencyINS1_6scopes6uniqueENS7_17IPatchLinksParserENS7_16PatchLinksParserENS1_7no_nameEvEEEEEEEDaSK_E1iZNKSM_INSC_ISD_SI_JNSN_INSO_6deduceENS7_15IPatchCveParserENS7_14PatchCveParserESS_vEEEEEEEDaSK_E1iZNKSM_INSC_ISD_SI_JNSN_ISW_NS7_20IPatchChecksumParserENS7_19PatchChecksumParserESS_vEEEEEEEDaSK_E1iZNKSM_INSC_ISD_SI_JNSN_ISW_NS7_12IPatchParserES8_SS_vEEEEEEEDaSK_E1iEEEEEDaSK_E1iZNKSM_INSC_ISD_SI_JZNKSM_INSC_ISD_SI_JNSN_ISW_NS7_17PatchAvailability18ISuccessItemParserENS1D_17SuccessItemParserESS_vEEEEEEEDaSK_E1iZNKSM_INSC_ISD_SI_JNSN_ISW_NS1D_18IFailureItemParserENS1D_17FailureItemParserESS_vEEEEEEEDaSK_E1iEEEEEDaSK_E1iZNKSM_INSC_ISD_SI_JZNKSM_INSC_ISD_SI_JNSN_ISW_NS6_14FileOperations11IFileReaderENS1Q_10FileReaderESS_vEEEEEEEDaSK_E1iZNKSM_INSC_ISD_SI_JNSN_ISW_NS1D_13IReportParserENS1D_12ReportParserESS_vEEEEEEEDaSK_E1iEEEEEDaSK_E1iZNKSM_INSC_ISD_SI_JNSN_INSO_8instanceESt8functionIFSt10unique_ptrINS7_10JsonModels13IJsonDocumentESt14default_deleteIS27_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEZNKS6_2DI13ParsingModule23registerDocumentFactoryEvEUlS2I_E_SS_vEEEEEEEDaSK_E1iEEEEEDaSK_E1iZNKSM_INSC_ISD_SI_JZNKSM_INSC_ISD_SI_JNSN_ISW_NS6_18ChartDataFactories18ItemValueFactories28ItemValueAccumulationFactoryES2V_SS_vEENSN_ISW_NS2T_31ValueAccumulationFactoryWrapperIS2V_EES2Y_SS_vEEEEEEEDaSK_E1iZNKSM_INSC_ISD_SI_JNSN_ISW_NS2T_26SingleAxisChartDataFactoryIS2Y_EES33_SS_vEENSN_ISW_NS2T_28MultipleAxisChartDataFactoryES35_SS_vEEEEEEEDaSK_E1iZNKSM_INSC_ISD_SI_JNSN_ISW_NS9_5arrayINS2T_37IPropertyNameChartDataSelectionMapperINS6_6Models11JsonReports17PatchAvailability11SuccessItemES2G_St6vectorIPNS3C_5PatchESaIS3H_EES3G_EEJEEENS39_IS3K_JNS2T_23PatchChartDataFactories25PatchNameChartDataFactoryENS3M_27PatchVendorChartDataFactoryENS3M_24SeverityChartDataFactoryENS3M_26UpdateTypeChartDataFactoryEEEESS_vEEEEEEEDaSK_E1iZNKSM_INSC_ISD_SI_JNSN_ISW_NS39_INS3A_IS3E_S2G_S3F_IPS3E_SaIS3V_EES3E_EEJEEENS39_IS3Y_JNS2T_32FGSIdentifiersChartDataFactories26VendorNameDataPointFactoryENS40_33VendorProductNameDataPointFactoryENS40_40VendorProductVersionNameDataPointFactoryEEEESS_vEEEEEEEDaSK_E1iZNKSM_INSC_ISD_SI_JNSN_ISW_NS39_INS2T_21ReportActionExecutors21IReportActionExecutorEJEEENS39_IS49_JNS48_25PatchReportActionExecutorIS35_S33_EENS48_31SuccessItemReportActionExecutorIS35_S33_EEEEESS_vEENSN_ISW_S49_NS48_29ReportActionExecutorCompositeESS_vEEEEEEEDaSK_E1iEEEEEDaSK_E1iEEEEES4O_S4O_EEEDaRKNS1_11type_traits6directERKNS4P_4heapEDpOT0_"


A small test program with a call to `cxa::__cxa_demangle` with the offending
string as an argument yeilds the following backtrace from gdb:

`
$ gdb ./a.out 
GNU gdb (GDB) 8.0.1
Reading symbols from ./a.out...done.
(gdb) r
Starting program: /mnt/f/repos/c++/demangling/a.out 

Program received signal SIGSEGV, Segmentation fault.
d_print_callback (options=17, opaque=0x7fffffffe7a0, callback=0x7ffff7ae0770
<d_growable_string_callback_adapter>, dc=0x7ffffffe29b0) at cp-demangle.c:4282
4282    cp-demangle.c: No such file or directory.
(gdb) bt
#0  d_print_callback (options=17, opaque=0x7fffffffe7a0,
callback=0x7ffff7ae0770 <d_growable_string_callback_adapter>,
dc=0x7ffffffe29b0) at cp-demangle.c:4282
#1  d_demangle_callback (mangled=<optimized out>,
callback=callback@entry=0x7ffff7ae0770 <d_growable_string_callback_adapter>,
opaque=opaque@entry=0x7fffffffe7a0, options=17) at cp-demangle.c:6256
#2  0x00007ffff7ae9a69 in d_demangle (options=17, palc=<synthetic pointer>,
mangled=<optimized out>) at cp-demangle.c:6277
#3  __cxa_demangle (mangled_name=<optimized out>, output_buffer=0x0,
length=0x0, status=0x7fffffffe814) at cp-demangle.c:6341
#4  0x0000555555554a74 in main (argc=1, argv=0x7fffffffe908) at bug.cc:10
(gdb) l
4277    in cp-demangle.c
(gdb) 
`

I'm using gcc 7.2.0 on arch with gdb 8.0.1. As a note, while I did compile the
program above myself (for debugging symbols), the same symbol will also crash
c++filt. Please let me know if you need further information. Thanks!

Reply via email to