You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-shells/bash/files/bash-5.2_p15-shell-parser-r...

34 lines
1.0 KiB

https://savannah.gnu.org/support/?110745
https://lists.gnu.org/archive/html/bug-bash/2022-10/msg00103.html
Note that both documents make the claim that only interactive shells are
affected. This is false, as is demonstrated below.
$ bash -c '[[ ]]; echo fin'; echo $?
0
diff --git a/parse.y b/parse.y
index 11b71d4..02b2af1 100644
--- parse.y
+++ parse.y
@@ -2899,7 +2899,7 @@ yylex ()
#if defined (YYERRCODE) && !defined (YYUNDEF)
current_token = YYERRCODE;
#else
- current_token = YYerror;
+ current_token = YYUNDEF;
#endif
return (current_token);
@@ -4156,7 +4156,9 @@ parse_comsub (qc, open, close, lenp, flags)
shell_eof_token = ps.eof_token;
expand_aliases = ps.expand_aliases;
- /* yyparse() has already called yyerror() and reset_parser() */
+ /* yyparse() has already called yyerror() and reset_parser(), so we set
+ PST_NOERROR to avoid a redundant error message. */
+ parser_state |= PST_NOERROR;
return (&matched_pair_error);
}
else if (r != 0)