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