blob: bef5586d0efc4f8499b33b7a36680b2bc7b75b9c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
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)
|