diff options
author | Catalin Popeanga <Catalin.Popeanga@enea.com> | 2014-10-09 14:25:15 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-10-10 18:06:09 +0100 |
commit | bda51ee7821de9120f6f536fcabe592f2a0c8a37 (patch) | |
tree | 4ad51fa0d04af6e6ecff167c90cf46d8f13dbd13 | |
parent | 5dd12beccd4a8fb62836247171b112dfa334f8df (diff) | |
download | poky-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.patch | 99 | ||||
-rw-r--r-- | meta/recipes-extended/bash/bash/cve-2014-6278.patch | 1191 | ||||
-rw-r--r-- | meta/recipes-extended/bash/bash_3.2.48.bb | 1 | ||||
-rw-r--r-- | meta/recipes-extended/bash/bash_4.3.bb | 1 |
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 @@ | |||
1 | bash: Fix CVE-2014-6278 (shellshock) | ||
2 | |||
3 | Upstream-status: backport | ||
4 | |||
5 | Downloaded from: | ||
6 | ftp://ftp.gnu.org/pub/bash/bash-3.2-patches/bash32-057 | ||
7 | |||
8 | Author: Chet Ramey <chet.ramey@case.edu> | ||
9 | Signed-off-by: Catalin Popeanga <catalin.popeanga@enea.com> | ||
10 | |||
11 | BASH PATCH REPORT | ||
12 | ================= | ||
13 | |||
14 | Bash-Release: 3.2 | ||
15 | Patch-ID: bash32-057 | ||
16 | |||
17 | Bug-Reported-by: Michal Zalewski <lcamtuf@coredump.cx> | ||
18 | Bug-Reference-ID: | ||
19 | Bug-Reference-URL: | ||
20 | |||
21 | Bug-Description: | ||
22 | |||
23 | A combination of nested command substitutions and function importing from | ||
24 | the environment can cause bash to execute code appearing in the environment | ||
25 | variable 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 @@ | |||
1 | bash: Fix CVE-2014-6278 (shellshock) | ||
2 | |||
3 | Upstream-status: backport | ||
4 | |||
5 | Downloaded from: | ||
6 | ftp://ftp.gnu.org/pub/bash/bash-4.3-patches/bash43-030 | ||
7 | |||
8 | Author: Chet Ramey <chet.ramey@case.edu> | ||
9 | Signed-off-by: Catalin Popeanga <catalin.popeanga@enea.com> | ||
10 | |||
11 | BASH PATCH REPORT | ||
12 | ================= | ||
13 | |||
14 | Bash-Release: 4.3 | ||
15 | Patch-ID: bash43-030 | ||
16 | |||
17 | Bug-Reported-by: Michal Zalewski <lcamtuf@coredump.cx> | ||
18 | Bug-Reference-ID: | ||
19 | Bug-Reference-URL: | ||
20 | |||
21 | Bug-Description: | ||
22 | |||
23 | When bash is parsing a function definition that contains a here-document | ||
24 | delimited by end-of-file (or end-of-string), it leaves the closing delimiter | ||
25 | uninitialized. This can result in an invalid memory access when the parsed | ||
26 | function 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 | ||