summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCatalin Popeanga <Catalin.Popeanga@enea.com>2014-10-09 14:25:15 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-10-10 18:06:09 +0100
commitbda51ee7821de9120f6f536fcabe592f2a0c8a37 (patch)
tree4ad51fa0d04af6e6ecff167c90cf46d8f13dbd13
parent5dd12beccd4a8fb62836247171b112dfa334f8df (diff)
downloadpoky-bda51ee7821de9120f6f536fcabe592f2a0c8a37.tar.gz
bash: Fix-for-CVE-2014-6278
This vulnerability exists because of an incomplete fix for CVE-2014-6271, CVE-2014-7169, and CVE-2014-6277 See: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6278 (From OE-Core rev: de596b5f31e837dcd2ce991245eb5548f12d72ae) Signed-off-by: Catalin Popeanga <Catalin.Popeanga@enea.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-extended/bash/bash-3.2.48/cve-2014-6278.patch99
-rw-r--r--meta/recipes-extended/bash/bash/cve-2014-6278.patch1191
-rw-r--r--meta/recipes-extended/bash/bash_3.2.48.bb1
-rw-r--r--meta/recipes-extended/bash/bash_4.3.bb1
4 files changed, 1292 insertions, 0 deletions
diff --git a/meta/recipes-extended/bash/bash-3.2.48/cve-2014-6278.patch b/meta/recipes-extended/bash/bash-3.2.48/cve-2014-6278.patch
new file mode 100644
index 0000000000..e51ce05bb5
--- /dev/null
+++ b/meta/recipes-extended/bash/bash-3.2.48/cve-2014-6278.patch
@@ -0,0 +1,99 @@
1bash: Fix CVE-2014-6278 (shellshock)
2
3Upstream-status: backport
4
5Downloaded from:
6ftp://ftp.gnu.org/pub/bash/bash-3.2-patches/bash32-057
7
8Author: Chet Ramey <chet.ramey@case.edu>
9Signed-off-by: Catalin Popeanga <catalin.popeanga@enea.com>
10
11 BASH PATCH REPORT
12 =================
13
14Bash-Release: 3.2
15Patch-ID: bash32-057
16
17Bug-Reported-by: Michal Zalewski <lcamtuf@coredump.cx>
18Bug-Reference-ID:
19Bug-Reference-URL:
20
21Bug-Description:
22
23A combination of nested command substitutions and function importing from
24the environment can cause bash to execute code appearing in the environment
25variable value following the function definition.
26
27--- a/builtins/evalstring.c 2014-09-16 19:08:02.000000000 -0400
28+++ b/builtins/evalstring.c 2014-10-04 15:58:35.000000000 -0400
29@@ -44,4 +44,5 @@
30 #include "../redir.h"
31 #include "../trap.h"
32+#include "../bashintl.h"
33
34 #if defined (HISTORY)
35@@ -235,10 +236,23 @@
36 struct fd_bitmap *bitmap;
37
38- if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def)
39+ if (flags & SEVAL_FUNCDEF)
40 {
41- internal_warning ("%s: ignoring function definition attempt", from_file);
42- should_jump_to_top_level = 0;
43- last_result = last_command_exit_value = EX_BADUSAGE;
44- break;
45+ char *x;
46+
47+ /* If the command parses to something other than a straight
48+ function definition, or if we have not consumed the entire
49+ string, or if the parser has transformed the function
50+ name (as parsing will if it begins or ends with shell
51+ whitespace, for example), reject the attempt */
52+ if (command->type != cm_function_def ||
53+ ((x = parser_remaining_input ()) && *x) ||
54+ (STREQ (from_file, command->value.Function_def->name->word) == 0))
55+ {
56+ internal_warning (_("%s: ignoring function definition attempt"), from_file);
57+ should_jump_to_top_level = 0;
58+ last_result = last_command_exit_value = EX_BADUSAGE;
59+ reset_parser ();
60+ break;
61+ }
62 }
63
64@@ -302,5 +316,8 @@
65
66 if (flags & SEVAL_ONECMD)
67- break;
68+ {
69+ reset_parser ();
70+ break;
71+ }
72 }
73 }
74--- a/parse.y 2014-09-30 19:43:22.000000000 -0400
75+++ b/parse.y 2014-10-04 15:58:35.000000000 -0400
76@@ -2125,4 +2125,14 @@
77 }
78
79+char *
80+parser_remaining_input ()
81+{
82+ if (shell_input_line == 0)
83+ return 0;
84+ if (shell_input_line_index < 0 || shell_input_line_index >= shell_input_line_len)
85+ return '\0'; /* XXX */
86+ return (shell_input_line + shell_input_line_index);
87+}
88+
89 #ifdef INCLUDE_UNUSED
90 /* Back the input pointer up by one, effectively `ungetting' a character. */
91--- a/shell.h 2008-04-28 22:00:24.000000000 -0400
92+++ b/shell.h 2014-10-04 15:58:35.000000000 -0400
93@@ -161,4 +161,6 @@
94
95 /* Let's try declaring these here. */
96+extern char *parser_remaining_input __P((void));
97+
98 extern sh_parser_state_t *save_parser_state __P((sh_parser_state_t *));
99 extern void restore_parser_state __P((sh_parser_state_t *));
diff --git a/meta/recipes-extended/bash/bash/cve-2014-6278.patch b/meta/recipes-extended/bash/bash/cve-2014-6278.patch
new file mode 100644
index 0000000000..fdce6d92a5
--- /dev/null
+++ b/meta/recipes-extended/bash/bash/cve-2014-6278.patch
@@ -0,0 +1,1191 @@
1bash: Fix CVE-2014-6278 (shellshock)
2
3Upstream-status: backport
4
5Downloaded from:
6ftp://ftp.gnu.org/pub/bash/bash-4.3-patches/bash43-030
7
8Author: Chet Ramey <chet.ramey@case.edu>
9Signed-off-by: Catalin Popeanga <catalin.popeanga@enea.com>
10
11 BASH PATCH REPORT
12 =================
13
14Bash-Release: 4.3
15Patch-ID: bash43-030
16
17Bug-Reported-by: Michal Zalewski <lcamtuf@coredump.cx>
18Bug-Reference-ID:
19Bug-Reference-URL:
20
21Bug-Description:
22
23When bash is parsing a function definition that contains a here-document
24delimited by end-of-file (or end-of-string), it leaves the closing delimiter
25uninitialized. This can result in an invalid memory access when the parsed
26function is later copied.
27
28--- a/builtins/evalstring.c 2014-10-01 12:57:47.000000000 -0400
29+++ b/builtins/evalstring.c 2014-10-03 11:57:04.000000000 -0400
30@@ -309,10 +313,23 @@
31 struct fd_bitmap *bitmap;
32
33- if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def)
34+ if (flags & SEVAL_FUNCDEF)
35 {
36- internal_warning ("%s: ignoring function definition attempt", from_file);
37- should_jump_to_top_level = 0;
38- last_result = last_command_exit_value = EX_BADUSAGE;
39- break;
40+ char *x;
41+
42+ /* If the command parses to something other than a straight
43+ function definition, or if we have not consumed the entire
44+ string, or if the parser has transformed the function
45+ name (as parsing will if it begins or ends with shell
46+ whitespace, for example), reject the attempt */
47+ if (command->type != cm_function_def ||
48+ ((x = parser_remaining_input ()) && *x) ||
49+ (STREQ (from_file, command->value.Function_def->name->word) == 0))
50+ {
51+ internal_warning (_("%s: ignoring function definition attempt"), from_file);
52+ should_jump_to_top_level = 0;
53+ last_result = last_command_exit_value = EX_BADUSAGE;
54+ reset_parser ();
55+ break;
56+ }
57 }
58
59@@ -379,5 +396,8 @@
60
61 if (flags & SEVAL_ONECMD)
62- break;
63+ {
64+ reset_parser ();
65+ break;
66+ }
67 }
68 }
69--- a/parse.y 2014-10-01 12:58:43.000000000 -0400
70+++ b/parse.y 2014-10-03 14:48:59.000000000 -0400
71@@ -2539,4 +2539,14 @@
72 }
73
74+char *
75+parser_remaining_input ()
76+{
77+ if (shell_input_line == 0)
78+ return 0;
79+ if (shell_input_line_index < 0 || shell_input_line_index >= shell_input_line_len)
80+ return '\0'; /* XXX */
81+ return (shell_input_line + shell_input_line_index);
82+}
83+
84 #ifdef INCLUDE_UNUSED
85 /* Back the input pointer up by one, effectively `ungetting' a character. */
86@@ -4028,6 +4053,6 @@
87 /* reset_parser clears shell_input_line and associated variables */
88 restore_input_line_state (&ls);
89- if (interactive)
90- token_to_read = 0;
91+
92+ token_to_read = 0;
93
94 /* Need to find how many characters parse_and_execute consumed, update
95--- a/shell.h 2014-10-01 12:57:39.000000000 -0400
96+++ b/shell.h 2014-10-03 14:49:12.000000000 -0400
97@@ -181,4 +181,6 @@
98
99 /* Let's try declaring these here. */
100+extern char *parser_remaining_input __P((void));
101+
102 extern sh_parser_state_t *save_parser_state __P((sh_parser_state_t *));
103 extern void restore_parser_state __P((sh_parser_state_t *));
104--- a/y.tab.c 2014-10-01 13:09:46.000000000 -0400
105+++ b/y.tab.c 2014-10-04 19:26:22.000000000 -0400
106@@ -169,5 +169,5 @@
107
108 /* Copy the first part of user declarations. */
109-#line 21 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
110+#line 21 "/usr/src/local/bash/bash-4.3-patched/parse.y"
111
112 #include "config.h"
113@@ -498,5 +498,5 @@
114 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
115 typedef union YYSTYPE
116-#line 329 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
117+#line 329 "/usr/src/local/bash/bash-4.3-patched/parse.y"
118 {
119 WORD_DESC *word; /* the word that we read. */
120@@ -2099,5 +2099,5 @@
121 {
122 case 2:
123-#line 383 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
124+#line 383 "/usr/src/local/bash/bash-4.3-patched/parse.y"
125 {
126 /* Case of regular command. Discard the error
127@@ -2113,5 +2113,5 @@
128
129 case 3:
130-#line 394 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
131+#line 394 "/usr/src/local/bash/bash-4.3-patched/parse.y"
132 {
133 /* Case of regular command, but not a very
134@@ -2125,5 +2125,5 @@
135
136 case 4:
137-#line 403 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
138+#line 403 "/usr/src/local/bash/bash-4.3-patched/parse.y"
139 {
140 /* Error during parsing. Return NULL command. */
141@@ -2143,5 +2143,5 @@
142
143 case 5:
144-#line 418 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
145+#line 418 "/usr/src/local/bash/bash-4.3-patched/parse.y"
146 {
147 /* Case of EOF seen by itself. Do ignoreeof or
148@@ -2154,15 +2154,15 @@
149
150 case 6:
151-#line 428 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
152+#line 428 "/usr/src/local/bash/bash-4.3-patched/parse.y"
153 { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); }
154 break;
155
156 case 7:
157-#line 430 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
158+#line 430 "/usr/src/local/bash/bash-4.3-patched/parse.y"
159 { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); }
160 break;
161
162 case 8:
163-#line 434 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
164+#line 434 "/usr/src/local/bash/bash-4.3-patched/parse.y"
165 {
166 source.dest = 1;
167@@ -2173,5 +2173,5 @@
168
169 case 9:
170-#line 440 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
171+#line 440 "/usr/src/local/bash/bash-4.3-patched/parse.y"
172 {
173 source.dest = 0;
174@@ -2182,5 +2182,5 @@
175
176 case 10:
177-#line 446 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
178+#line 446 "/usr/src/local/bash/bash-4.3-patched/parse.y"
179 {
180 source.dest = (yyvsp[(1) - (3)].number);
181@@ -2191,5 +2191,5 @@
182
183 case 11:
184-#line 452 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
185+#line 452 "/usr/src/local/bash/bash-4.3-patched/parse.y"
186 {
187 source.dest = (yyvsp[(1) - (3)].number);
188@@ -2200,5 +2200,5 @@
189
190 case 12:
191-#line 458 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
192+#line 458 "/usr/src/local/bash/bash-4.3-patched/parse.y"
193 {
194 source.filename = (yyvsp[(1) - (3)].word);
195@@ -2209,5 +2209,5 @@
196
197 case 13:
198-#line 464 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
199+#line 464 "/usr/src/local/bash/bash-4.3-patched/parse.y"
200 {
201 source.filename = (yyvsp[(1) - (3)].word);
202@@ -2218,5 +2218,5 @@
203
204 case 14:
205-#line 470 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
206+#line 470 "/usr/src/local/bash/bash-4.3-patched/parse.y"
207 {
208 source.dest = 1;
209@@ -2227,5 +2227,5 @@
210
211 case 15:
212-#line 476 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
213+#line 476 "/usr/src/local/bash/bash-4.3-patched/parse.y"
214 {
215 source.dest = (yyvsp[(1) - (3)].number);
216@@ -2236,5 +2236,5 @@
217
218 case 16:
219-#line 482 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
220+#line 482 "/usr/src/local/bash/bash-4.3-patched/parse.y"
221 {
222 source.filename = (yyvsp[(1) - (3)].word);
223@@ -2245,5 +2245,5 @@
224
225 case 17:
226-#line 488 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
227+#line 488 "/usr/src/local/bash/bash-4.3-patched/parse.y"
228 {
229 source.dest = 1;
230@@ -2254,5 +2254,5 @@
231
232 case 18:
233-#line 494 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
234+#line 494 "/usr/src/local/bash/bash-4.3-patched/parse.y"
235 {
236 source.dest = (yyvsp[(1) - (3)].number);
237@@ -2263,5 +2263,5 @@
238
239 case 19:
240-#line 500 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
241+#line 500 "/usr/src/local/bash/bash-4.3-patched/parse.y"
242 {
243 source.filename = (yyvsp[(1) - (3)].word);
244@@ -2272,5 +2272,5 @@
245
246 case 20:
247-#line 506 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
248+#line 506 "/usr/src/local/bash/bash-4.3-patched/parse.y"
249 {
250 source.dest = 0;
251@@ -2281,5 +2281,5 @@
252
253 case 21:
254-#line 512 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
255+#line 512 "/usr/src/local/bash/bash-4.3-patched/parse.y"
256 {
257 source.dest = (yyvsp[(1) - (3)].number);
258@@ -2290,5 +2290,5 @@
259
260 case 22:
261-#line 518 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
262+#line 518 "/usr/src/local/bash/bash-4.3-patched/parse.y"
263 {
264 source.filename = (yyvsp[(1) - (3)].word);
265@@ -2299,5 +2299,5 @@
266
267 case 23:
268-#line 524 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
269+#line 524 "/usr/src/local/bash/bash-4.3-patched/parse.y"
270 {
271 source.dest = 0;
272@@ -2309,5 +2309,5 @@
273
274 case 24:
275-#line 531 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
276+#line 531 "/usr/src/local/bash/bash-4.3-patched/parse.y"
277 {
278 source.dest = (yyvsp[(1) - (3)].number);
279@@ -2319,5 +2319,5 @@
280
281 case 25:
282-#line 538 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
283+#line 538 "/usr/src/local/bash/bash-4.3-patched/parse.y"
284 {
285 source.filename = (yyvsp[(1) - (3)].word);
286@@ -2329,5 +2329,5 @@
287
288 case 26:
289-#line 545 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
290+#line 545 "/usr/src/local/bash/bash-4.3-patched/parse.y"
291 {
292 source.dest = 0;
293@@ -2339,5 +2339,5 @@
294
295 case 27:
296-#line 552 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
297+#line 552 "/usr/src/local/bash/bash-4.3-patched/parse.y"
298 {
299 source.dest = (yyvsp[(1) - (3)].number);
300@@ -2349,5 +2349,5 @@
301
302 case 28:
303-#line 559 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
304+#line 559 "/usr/src/local/bash/bash-4.3-patched/parse.y"
305 {
306 source.filename = (yyvsp[(1) - (3)].word);
307@@ -2359,5 +2359,5 @@
308
309 case 29:
310-#line 566 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
311+#line 566 "/usr/src/local/bash/bash-4.3-patched/parse.y"
312 {
313 source.dest = 0;
314@@ -2368,5 +2368,5 @@
315
316 case 30:
317-#line 572 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
318+#line 572 "/usr/src/local/bash/bash-4.3-patched/parse.y"
319 {
320 source.dest = (yyvsp[(1) - (3)].number);
321@@ -2377,5 +2377,5 @@
322
323 case 31:
324-#line 578 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
325+#line 578 "/usr/src/local/bash/bash-4.3-patched/parse.y"
326 {
327 source.filename = (yyvsp[(1) - (3)].word);
328@@ -2386,5 +2386,5 @@
329
330 case 32:
331-#line 584 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
332+#line 584 "/usr/src/local/bash/bash-4.3-patched/parse.y"
333 {
334 source.dest = 0;
335@@ -2395,5 +2395,5 @@
336
337 case 33:
338-#line 590 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
339+#line 590 "/usr/src/local/bash/bash-4.3-patched/parse.y"
340 {
341 source.dest = (yyvsp[(1) - (3)].number);
342@@ -2404,5 +2404,5 @@
343
344 case 34:
345-#line 596 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
346+#line 596 "/usr/src/local/bash/bash-4.3-patched/parse.y"
347 {
348 source.filename = (yyvsp[(1) - (3)].word);
349@@ -2413,5 +2413,5 @@
350
351 case 35:
352-#line 602 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
353+#line 602 "/usr/src/local/bash/bash-4.3-patched/parse.y"
354 {
355 source.dest = 1;
356@@ -2422,5 +2422,5 @@
357
358 case 36:
359-#line 608 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
360+#line 608 "/usr/src/local/bash/bash-4.3-patched/parse.y"
361 {
362 source.dest = (yyvsp[(1) - (3)].number);
363@@ -2431,5 +2431,5 @@
364
365 case 37:
366-#line 614 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
367+#line 614 "/usr/src/local/bash/bash-4.3-patched/parse.y"
368 {
369 source.filename = (yyvsp[(1) - (3)].word);
370@@ -2440,5 +2440,5 @@
371
372 case 38:
373-#line 620 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
374+#line 620 "/usr/src/local/bash/bash-4.3-patched/parse.y"
375 {
376 source.dest = 0;
377@@ -2449,5 +2449,5 @@
378
379 case 39:
380-#line 626 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
381+#line 626 "/usr/src/local/bash/bash-4.3-patched/parse.y"
382 {
383 source.dest = (yyvsp[(1) - (3)].number);
384@@ -2458,5 +2458,5 @@
385
386 case 40:
387-#line 632 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
388+#line 632 "/usr/src/local/bash/bash-4.3-patched/parse.y"
389 {
390 source.filename = (yyvsp[(1) - (3)].word);
391@@ -2467,5 +2467,5 @@
392
393 case 41:
394-#line 638 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
395+#line 638 "/usr/src/local/bash/bash-4.3-patched/parse.y"
396 {
397 source.dest = 1;
398@@ -2476,5 +2476,5 @@
399
400 case 42:
401-#line 644 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
402+#line 644 "/usr/src/local/bash/bash-4.3-patched/parse.y"
403 {
404 source.dest = (yyvsp[(1) - (3)].number);
405@@ -2485,5 +2485,5 @@
406
407 case 43:
408-#line 650 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
409+#line 650 "/usr/src/local/bash/bash-4.3-patched/parse.y"
410 {
411 source.filename = (yyvsp[(1) - (3)].word);
412@@ -2494,5 +2494,5 @@
413
414 case 44:
415-#line 656 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
416+#line 656 "/usr/src/local/bash/bash-4.3-patched/parse.y"
417 {
418 source.dest = 1;
419@@ -2503,5 +2503,5 @@
420
421 case 45:
422-#line 662 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
423+#line 662 "/usr/src/local/bash/bash-4.3-patched/parse.y"
424 {
425 source.dest = (yyvsp[(1) - (3)].number);
426@@ -2512,5 +2512,5 @@
427
428 case 46:
429-#line 668 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
430+#line 668 "/usr/src/local/bash/bash-4.3-patched/parse.y"
431 {
432 source.filename = (yyvsp[(1) - (3)].word);
433@@ -2521,5 +2521,5 @@
434
435 case 47:
436-#line 674 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
437+#line 674 "/usr/src/local/bash/bash-4.3-patched/parse.y"
438 {
439 source.dest = 0;
440@@ -2530,5 +2530,5 @@
441
442 case 48:
443-#line 680 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
444+#line 680 "/usr/src/local/bash/bash-4.3-patched/parse.y"
445 {
446 source.dest = (yyvsp[(1) - (3)].number);
447@@ -2539,5 +2539,5 @@
448
449 case 49:
450-#line 686 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
451+#line 686 "/usr/src/local/bash/bash-4.3-patched/parse.y"
452 {
453 source.filename = (yyvsp[(1) - (3)].word);
454@@ -2548,5 +2548,5 @@
455
456 case 50:
457-#line 692 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
458+#line 692 "/usr/src/local/bash/bash-4.3-patched/parse.y"
459 {
460 source.dest = 1;
461@@ -2557,5 +2557,5 @@
462
463 case 51:
464-#line 698 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
465+#line 698 "/usr/src/local/bash/bash-4.3-patched/parse.y"
466 {
467 source.dest = 1;
468@@ -2566,20 +2566,20 @@
469
470 case 52:
471-#line 706 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
472+#line 706 "/usr/src/local/bash/bash-4.3-patched/parse.y"
473 { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; }
474 break;
475
476 case 53:
477-#line 708 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
478+#line 708 "/usr/src/local/bash/bash-4.3-patched/parse.y"
479 { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; }
480 break;
481
482 case 54:
483-#line 710 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
484+#line 710 "/usr/src/local/bash/bash-4.3-patched/parse.y"
485 { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; }
486 break;
487
488 case 55:
489-#line 714 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
490+#line 714 "/usr/src/local/bash/bash-4.3-patched/parse.y"
491 {
492 (yyval.redirect) = (yyvsp[(1) - (1)].redirect);
493@@ -2588,5 +2588,5 @@
494
495 case 56:
496-#line 718 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
497+#line 718 "/usr/src/local/bash/bash-4.3-patched/parse.y"
498 {
499 register REDIRECT *t;
500@@ -2600,25 +2600,25 @@
501
502 case 57:
503-#line 729 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
504+#line 729 "/usr/src/local/bash/bash-4.3-patched/parse.y"
505 { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); }
506 break;
507
508 case 58:
509-#line 731 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
510+#line 731 "/usr/src/local/bash/bash-4.3-patched/parse.y"
511 { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); }
512 break;
513
514 case 59:
515-#line 735 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
516+#line 735 "/usr/src/local/bash/bash-4.3-patched/parse.y"
517 { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); }
518 break;
519
520 case 60:
521-#line 737 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
522+#line 737 "/usr/src/local/bash/bash-4.3-patched/parse.y"
523 { (yyval.command) = (yyvsp[(1) - (1)].command); }
524 break;
525
526 case 61:
527-#line 739 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
528+#line 739 "/usr/src/local/bash/bash-4.3-patched/parse.y"
529 {
530 COMMAND *tc;
531@@ -2639,70 +2639,70 @@
532
533 case 62:
534-#line 755 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
535+#line 755 "/usr/src/local/bash/bash-4.3-patched/parse.y"
536 { (yyval.command) = (yyvsp[(1) - (1)].command); }
537 break;
538
539 case 63:
540-#line 757 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
541+#line 757 "/usr/src/local/bash/bash-4.3-patched/parse.y"
542 { (yyval.command) = (yyvsp[(1) - (1)].command); }
543 break;
544
545 case 64:
546-#line 761 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
547+#line 761 "/usr/src/local/bash/bash-4.3-patched/parse.y"
548 { (yyval.command) = (yyvsp[(1) - (1)].command); }
549 break;
550
551 case 65:
552-#line 763 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
553+#line 763 "/usr/src/local/bash/bash-4.3-patched/parse.y"
554 { (yyval.command) = (yyvsp[(1) - (1)].command); }
555 break;
556
557 case 66:
558-#line 765 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
559+#line 765 "/usr/src/local/bash/bash-4.3-patched/parse.y"
560 { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); }
561 break;
562
563 case 67:
564-#line 767 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
565+#line 767 "/usr/src/local/bash/bash-4.3-patched/parse.y"
566 { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); }
567 break;
568
569 case 68:
570-#line 769 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
571+#line 769 "/usr/src/local/bash/bash-4.3-patched/parse.y"
572 { (yyval.command) = (yyvsp[(1) - (1)].command); }
573 break;
574
575 case 69:
576-#line 771 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
577+#line 771 "/usr/src/local/bash/bash-4.3-patched/parse.y"
578 { (yyval.command) = (yyvsp[(1) - (1)].command); }
579 break;
580
581 case 70:
582-#line 773 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
583+#line 773 "/usr/src/local/bash/bash-4.3-patched/parse.y"
584 { (yyval.command) = (yyvsp[(1) - (1)].command); }
585 break;
586
587 case 71:
588-#line 775 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
589+#line 775 "/usr/src/local/bash/bash-4.3-patched/parse.y"
590 { (yyval.command) = (yyvsp[(1) - (1)].command); }
591 break;
592
593 case 72:
594-#line 777 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
595+#line 777 "/usr/src/local/bash/bash-4.3-patched/parse.y"
596 { (yyval.command) = (yyvsp[(1) - (1)].command); }
597 break;
598
599 case 73:
600-#line 779 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
601+#line 779 "/usr/src/local/bash/bash-4.3-patched/parse.y"
602 { (yyval.command) = (yyvsp[(1) - (1)].command); }
603 break;
604
605 case 74:
606-#line 781 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
607+#line 781 "/usr/src/local/bash/bash-4.3-patched/parse.y"
608 { (yyval.command) = (yyvsp[(1) - (1)].command); }
609 break;
610
611 case 75:
612-#line 785 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
613+#line 785 "/usr/src/local/bash/bash-4.3-patched/parse.y"
614 {
615 (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]);
616@@ -2712,5 +2712,5 @@
617
618 case 76:
619-#line 790 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
620+#line 790 "/usr/src/local/bash/bash-4.3-patched/parse.y"
621 {
622 (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]);
623@@ -2720,5 +2720,5 @@
624
625 case 77:
626-#line 795 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
627+#line 795 "/usr/src/local/bash/bash-4.3-patched/parse.y"
628 {
629 (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]);
630@@ -2728,5 +2728,5 @@
631
632 case 78:
633-#line 800 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
634+#line 800 "/usr/src/local/bash/bash-4.3-patched/parse.y"
635 {
636 (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]);
637@@ -2736,5 +2736,5 @@
638
639 case 79:
640-#line 805 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
641+#line 805 "/usr/src/local/bash/bash-4.3-patched/parse.y"
642 {
643 (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]);
644@@ -2744,5 +2744,5 @@
645
646 case 80:
647-#line 810 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
648+#line 810 "/usr/src/local/bash/bash-4.3-patched/parse.y"
649 {
650 (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]);
651@@ -2752,5 +2752,5 @@
652
653 case 81:
654-#line 815 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
655+#line 815 "/usr/src/local/bash/bash-4.3-patched/parse.y"
656 {
657 (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]);
658@@ -2760,5 +2760,5 @@
659
660 case 82:
661-#line 820 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
662+#line 820 "/usr/src/local/bash/bash-4.3-patched/parse.y"
663 {
664 (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]);
665@@ -2768,5 +2768,5 @@
666
667 case 83:
668-#line 827 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
669+#line 827 "/usr/src/local/bash/bash-4.3-patched/parse.y"
670 {
671 (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno);
672@@ -2776,5 +2776,5 @@
673
674 case 84:
675-#line 832 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
676+#line 832 "/usr/src/local/bash/bash-4.3-patched/parse.y"
677 {
678 (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno);
679@@ -2784,5 +2784,5 @@
680
681 case 85:
682-#line 837 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
683+#line 837 "/usr/src/local/bash/bash-4.3-patched/parse.y"
684 {
685 (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno);
686@@ -2792,5 +2792,5 @@
687
688 case 86:
689-#line 842 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
690+#line 842 "/usr/src/local/bash/bash-4.3-patched/parse.y"
691 {
692 (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno);
693@@ -2800,5 +2800,5 @@
694
695 case 87:
696-#line 849 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
697+#line 849 "/usr/src/local/bash/bash-4.3-patched/parse.y"
698 {
699 (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]);
700@@ -2808,5 +2808,5 @@
701
702 case 88:
703-#line 854 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
704+#line 854 "/usr/src/local/bash/bash-4.3-patched/parse.y"
705 {
706 (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]);
707@@ -2816,5 +2816,5 @@
708
709 case 89:
710-#line 859 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
711+#line 859 "/usr/src/local/bash/bash-4.3-patched/parse.y"
712 {
713 (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]);
714@@ -2824,5 +2824,5 @@
715
716 case 90:
717-#line 864 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
718+#line 864 "/usr/src/local/bash/bash-4.3-patched/parse.y"
719 {
720 (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]);
721@@ -2832,5 +2832,5 @@
722
723 case 91:
724-#line 869 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
725+#line 869 "/usr/src/local/bash/bash-4.3-patched/parse.y"
726 {
727 (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]);
728@@ -2840,5 +2840,5 @@
729
730 case 92:
731-#line 874 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
732+#line 874 "/usr/src/local/bash/bash-4.3-patched/parse.y"
733 {
734 (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]);
735@@ -2848,5 +2848,5 @@
736
737 case 93:
738-#line 881 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
739+#line 881 "/usr/src/local/bash/bash-4.3-patched/parse.y"
740 {
741 (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]);
742@@ -2856,5 +2856,5 @@
743
744 case 94:
745-#line 886 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
746+#line 886 "/usr/src/local/bash/bash-4.3-patched/parse.y"
747 {
748 (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]);
749@@ -2864,5 +2864,5 @@
750
751 case 95:
752-#line 891 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
753+#line 891 "/usr/src/local/bash/bash-4.3-patched/parse.y"
754 {
755 (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]);
756@@ -2872,25 +2872,25 @@
757
758 case 96:
759-#line 898 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
760+#line 898 "/usr/src/local/bash/bash-4.3-patched/parse.y"
761 { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); }
762 break;
763
764 case 97:
765-#line 901 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
766+#line 901 "/usr/src/local/bash/bash-4.3-patched/parse.y"
767 { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); }
768 break;
769
770 case 98:
771-#line 904 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
772+#line 904 "/usr/src/local/bash/bash-4.3-patched/parse.y"
773 { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); }
774 break;
775
776 case 99:
777-#line 908 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
778+#line 908 "/usr/src/local/bash/bash-4.3-patched/parse.y"
779 { (yyval.command) = (yyvsp[(1) - (1)].command); }
780 break;
781
782 case 100:
783-#line 910 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
784+#line 910 "/usr/src/local/bash/bash-4.3-patched/parse.y"
785 {
786 COMMAND *tc;
787@@ -2924,5 +2924,5 @@
788
789 case 101:
790-#line 941 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
791+#line 941 "/usr/src/local/bash/bash-4.3-patched/parse.y"
792 {
793 (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command));
794@@ -2932,5 +2932,5 @@
795
796 case 102:
797-#line 948 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
798+#line 948 "/usr/src/local/bash/bash-4.3-patched/parse.y"
799 {
800 (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command));
801@@ -2940,5 +2940,5 @@
802
803 case 103:
804-#line 953 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
805+#line 953 "/usr/src/local/bash/bash-4.3-patched/parse.y"
806 {
807 COMMAND *tc;
808@@ -2960,5 +2960,5 @@
809
810 case 104:
811-#line 970 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
812+#line 970 "/usr/src/local/bash/bash-4.3-patched/parse.y"
813 {
814 (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command));
815@@ -2968,5 +2968,5 @@
816
817 case 105:
818-#line 975 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
819+#line 975 "/usr/src/local/bash/bash-4.3-patched/parse.y"
820 {
821 COMMAND *tc;
822@@ -2988,5 +2988,5 @@
823
824 case 106:
825-#line 992 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
826+#line 992 "/usr/src/local/bash/bash-4.3-patched/parse.y"
827 {
828 (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command)));
829@@ -2996,115 +2996,115 @@
830
831 case 107:
832-#line 999 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
833+#line 999 "/usr/src/local/bash/bash-4.3-patched/parse.y"
834 { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); }
835 break;
836
837 case 108:
838-#line 1001 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
839+#line 1001 "/usr/src/local/bash/bash-4.3-patched/parse.y"
840 { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); }
841 break;
842
843 case 109:
844-#line 1003 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
845+#line 1003 "/usr/src/local/bash/bash-4.3-patched/parse.y"
846 { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); }
847 break;
848
849 case 110:
850-#line 1008 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
851+#line 1008 "/usr/src/local/bash/bash-4.3-patched/parse.y"
852 { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); }
853 break;
854
855 case 111:
856-#line 1012 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
857+#line 1012 "/usr/src/local/bash/bash-4.3-patched/parse.y"
858 { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); }
859 break;
860
861 case 112:
862-#line 1016 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
863+#line 1016 "/usr/src/local/bash/bash-4.3-patched/parse.y"
864 { (yyval.command) = (yyvsp[(2) - (3)].command); }
865 break;
866
867 case 113:
868-#line 1020 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
869+#line 1020 "/usr/src/local/bash/bash-4.3-patched/parse.y"
870 { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); }
871 break;
872
873 case 114:
874-#line 1022 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
875+#line 1022 "/usr/src/local/bash/bash-4.3-patched/parse.y"
876 { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); }
877 break;
878
879 case 115:
880-#line 1024 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
881+#line 1024 "/usr/src/local/bash/bash-4.3-patched/parse.y"
882 { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); }
883 break;
884
885 case 117:
886-#line 1029 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
887+#line 1029 "/usr/src/local/bash/bash-4.3-patched/parse.y"
888 { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); }
889 break;
890
891 case 118:
892-#line 1033 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
893+#line 1033 "/usr/src/local/bash/bash-4.3-patched/parse.y"
894 { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); }
895 break;
896
897 case 119:
898-#line 1035 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
899+#line 1035 "/usr/src/local/bash/bash-4.3-patched/parse.y"
900 { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); }
901 break;
902
903 case 120:
904-#line 1037 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
905+#line 1037 "/usr/src/local/bash/bash-4.3-patched/parse.y"
906 { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); }
907 break;
908
909 case 121:
910-#line 1039 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
911+#line 1039 "/usr/src/local/bash/bash-4.3-patched/parse.y"
912 { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); }
913 break;
914
915 case 122:
916-#line 1043 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
917+#line 1043 "/usr/src/local/bash/bash-4.3-patched/parse.y"
918 { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); }
919 break;
920
921 case 123:
922-#line 1045 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
923+#line 1045 "/usr/src/local/bash/bash-4.3-patched/parse.y"
924 { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); }
925 break;
926
927 case 124:
928-#line 1047 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
929+#line 1047 "/usr/src/local/bash/bash-4.3-patched/parse.y"
930 { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); }
931 break;
932
933 case 125:
934-#line 1049 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
935+#line 1049 "/usr/src/local/bash/bash-4.3-patched/parse.y"
936 { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); }
937 break;
938
939 case 126:
940-#line 1051 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
941+#line 1051 "/usr/src/local/bash/bash-4.3-patched/parse.y"
942 { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); }
943 break;
944
945 case 127:
946-#line 1053 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
947+#line 1053 "/usr/src/local/bash/bash-4.3-patched/parse.y"
948 { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); }
949 break;
950
951 case 128:
952-#line 1057 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
953+#line 1057 "/usr/src/local/bash/bash-4.3-patched/parse.y"
954 { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); }
955 break;
956
957 case 129:
958-#line 1059 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
959+#line 1059 "/usr/src/local/bash/bash-4.3-patched/parse.y"
960 { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); }
961 break;
962
963 case 130:
964-#line 1068 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
965+#line 1068 "/usr/src/local/bash/bash-4.3-patched/parse.y"
966 {
967 (yyval.command) = (yyvsp[(2) - (2)].command);
968@@ -3115,5 +3115,5 @@
969
970 case 132:
971-#line 1077 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
972+#line 1077 "/usr/src/local/bash/bash-4.3-patched/parse.y"
973 {
974 (yyval.command) = (yyvsp[(2) - (2)].command);
975@@ -3122,5 +3122,5 @@
976
977 case 134:
978-#line 1084 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
979+#line 1084 "/usr/src/local/bash/bash-4.3-patched/parse.y"
980 {
981 if ((yyvsp[(1) - (3)].command)->type == cm_connection)
982@@ -3132,15 +3132,15 @@
983
984 case 136:
985-#line 1095 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
986+#line 1095 "/usr/src/local/bash/bash-4.3-patched/parse.y"
987 { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); }
988 break;
989
990 case 137:
991-#line 1097 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
992+#line 1097 "/usr/src/local/bash/bash-4.3-patched/parse.y"
993 { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); }
994 break;
995
996 case 138:
997-#line 1099 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
998+#line 1099 "/usr/src/local/bash/bash-4.3-patched/parse.y"
999 {
1000 if ((yyvsp[(1) - (4)].command)->type == cm_connection)
1001@@ -3152,35 +3152,35 @@
1002
1003 case 139:
1004-#line 1106 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1005+#line 1106 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1006 { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); }
1007 break;
1008
1009 case 140:
1010-#line 1108 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1011+#line 1108 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1012 { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); }
1013 break;
1014
1015 case 141:
1016-#line 1110 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1017+#line 1110 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1018 { (yyval.command) = (yyvsp[(1) - (1)].command); }
1019 break;
1020
1021 case 144:
1022-#line 1118 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1023+#line 1118 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1024 { (yyval.number) = '\n'; }
1025 break;
1026
1027 case 145:
1028-#line 1120 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1029+#line 1120 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1030 { (yyval.number) = ';'; }
1031 break;
1032
1033 case 146:
1034-#line 1122 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1035+#line 1122 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1036 { (yyval.number) = yacc_EOF; }
1037 break;
1038
1039 case 149:
1040-#line 1136 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1041+#line 1136 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1042 {
1043 (yyval.command) = (yyvsp[(1) - (1)].command);
1044@@ -3198,5 +3198,5 @@
1045
1046 case 150:
1047-#line 1149 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1048+#line 1149 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1049 {
1050 if ((yyvsp[(1) - (2)].command)->type == cm_connection)
1051@@ -3217,5 +3217,5 @@
1052
1053 case 151:
1054-#line 1165 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1055+#line 1165 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1056 {
1057 (yyval.command) = (yyvsp[(1) - (2)].command);
1058@@ -3233,15 +3233,15 @@
1059
1060 case 152:
1061-#line 1180 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1062+#line 1180 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1063 { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); }
1064 break;
1065
1066 case 153:
1067-#line 1182 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1068+#line 1182 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1069 { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); }
1070 break;
1071
1072 case 154:
1073-#line 1184 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1074+#line 1184 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1075 {
1076 if ((yyvsp[(1) - (3)].command)->type == cm_connection)
1077@@ -3253,20 +3253,20 @@
1078
1079 case 155:
1080-#line 1191 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1081+#line 1191 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1082 { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); }
1083 break;
1084
1085 case 156:
1086-#line 1194 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1087+#line 1194 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1088 { (yyval.command) = (yyvsp[(1) - (1)].command); }
1089 break;
1090
1091 case 157:
1092-#line 1198 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1093+#line 1198 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1094 { (yyval.command) = (yyvsp[(1) - (1)].command); }
1095 break;
1096
1097 case 158:
1098-#line 1200 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1099+#line 1200 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1100 {
1101 if ((yyvsp[(2) - (2)].command))
1102@@ -3277,5 +3277,5 @@
1103
1104 case 159:
1105-#line 1206 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1106+#line 1206 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1107 {
1108 if ((yyvsp[(2) - (2)].command))
1109@@ -3286,5 +3286,5 @@
1110
1111 case 160:
1112-#line 1212 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1113+#line 1212 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1114 {
1115 ELEMENT x;
1116@@ -3306,5 +3306,5 @@
1117
1118 case 161:
1119-#line 1229 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1120+#line 1229 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1121 {
1122 ELEMENT x;
1123@@ -3327,10 +3327,10 @@
1124
1125 case 162:
1126-#line 1249 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1127+#line 1249 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1128 { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); }
1129 break;
1130
1131 case 163:
1132-#line 1251 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1133+#line 1251 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1134 {
1135 /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */
1136@@ -3358,20 +3358,20 @@
1137
1138 case 164:
1139-#line 1274 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1140+#line 1274 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1141 { (yyval.command) = (yyvsp[(1) - (1)].command); }
1142 break;
1143
1144 case 165:
1145-#line 1278 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1146+#line 1278 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1147 { (yyval.number) = CMD_TIME_PIPELINE; }
1148 break;
1149
1150 case 166:
1151-#line 1280 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1152+#line 1280 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1153 { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; }
1154 break;
1155
1156 case 167:
1157-#line 1282 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1158+#line 1282 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1159 { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; }
1160 break;
1161@@ -3593,5 +3593,5 @@
1162
1163
1164-#line 1284 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1165+#line 1284 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1166
1167
1168@@ -4851,4 +4851,14 @@
1169 }
1170
1171+char *
1172+parser_remaining_input ()
1173+{
1174+ if (shell_input_line == 0)
1175+ return 0;
1176+ if (shell_input_line_index < 0 || shell_input_line_index >= shell_input_line_len)
1177+ return '\0'; /* XXX */
1178+ return (shell_input_line + shell_input_line_index);
1179+}
1180+
1181 #ifdef INCLUDE_UNUSED
1182 /* Back the input pointer up by one, effectively `ungetting' a character. */
1183@@ -6340,6 +6350,6 @@
1184 /* reset_parser clears shell_input_line and associated variables */
1185 restore_input_line_state (&ls);
1186- if (interactive)
1187- token_to_read = 0;
1188+
1189+ token_to_read = 0;
1190
1191 /* Need to find how many characters parse_and_execute consumed, update
diff --git a/meta/recipes-extended/bash/bash_3.2.48.bb b/meta/recipes-extended/bash/bash_3.2.48.bb
index 4bd97e7116..d642abd305 100644
--- a/meta/recipes-extended/bash/bash_3.2.48.bb
+++ b/meta/recipes-extended/bash/bash_3.2.48.bb
@@ -17,6 +17,7 @@ SRC_URI = "${GNU_MIRROR}/bash/bash-${PV}.tar.gz;name=tarball \
17 file://Fix-for-bash-exported-function-namespace-change.patch \ 17 file://Fix-for-bash-exported-function-namespace-change.patch \
18 file://cve-2014-7186_cve-2014-7187.patch \ 18 file://cve-2014-7186_cve-2014-7187.patch \
19 file://cve-2014-6277.patch \ 19 file://cve-2014-6277.patch \
20 file://cve-2014-6278.patch \
20 file://run-ptest \ 21 file://run-ptest \
21 " 22 "
22 23
diff --git a/meta/recipes-extended/bash/bash_4.3.bb b/meta/recipes-extended/bash/bash_4.3.bb
index f36c6a1710..65c61b176d 100644
--- a/meta/recipes-extended/bash/bash_4.3.bb
+++ b/meta/recipes-extended/bash/bash_4.3.bb
@@ -14,6 +14,7 @@ SRC_URI = "${GNU_MIRROR}/bash/${BPN}-${PV}.tar.gz;name=tarball \
14 file://Fix-for-bash-exported-function-namespace-change.patch \ 14 file://Fix-for-bash-exported-function-namespace-change.patch \
15 file://cve-2014-7186_cve-2014-7187.patch \ 15 file://cve-2014-7186_cve-2014-7187.patch \
16 file://cve-2014-6277.patch \ 16 file://cve-2014-6277.patch \
17 file://cve-2014-6278.patch \
17 file://run-ptest \ 18 file://run-ptest \
18 " 19 "
19 20