Re: [BUG] NULL pointer dereference
Collin Funk <[email protected]> Fri, 05 Sep 2025 20:14:06 -0700
| Newsgroups | gmane.comp.parsers.bison.bugs |
|---|---|
| Message-ID | <[email protected]> |
Momoko Shiraishi <[email protected]> writes: > Modified src/parse-gram.y to add null checks for values that allow empty = input. > > ```diff > --- src/parse-gram.y.old=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2= =80=822025-09-05 13:40:52.350286200 +0900 > +++ src/parse-gram.y=E2=80=82=E2=80=82=E2=80=82=E2=80=822025-09-05 13:40:= 56.292358851 +0900 > @@ -234,14 +234,14 @@ > %printer { fputs (char_name ($$), yyo); } <unsigned char> > > %type <char*> "{...}" "%?{...}" "%{...%}" EPILOGUE STRING TSTRING > -%printer { fputs ($$, yyo); } <char*> > +%printer { fputs ($$?$$:"<NULL>", yyo); } <char*> > > %type <uniqstr> > BRACKETED_ID ID ID_COLON > PERCENT_ERROR_VERBOSE PERCENT_FILE_PREFIX PERCENT_FLAG PERCENT_NAME_PR= EFIX > PERCENT_PURE_PARSER > TAG tag tag.opt variable > -%printer { fputs ($$, yyo); } <uniqstr> > +%printer { fputs ($$?$$:"<NULL>", yyo); } <uniqstr> > %printer { fprintf (yyo, "[%s]", $$); } BRACKETED_ID > %printer { fprintf (yyo, "%s:", $$); } ID_COLON > %printer { fprintf (yyo, "%%%s", $$); } PERCENT_FLAG > ``` This patch works fine, with some formatting adjustments. But maybe it is just better to use fprintf, which can handle NULL pointers. WDYT Paul? Collin