]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blame - src/patches/bash/bash52-012
wavemon: Update to version 0.9.5
[people/pmueller/ipfire-2.x.git] / src / patches / bash / bash52-012
CommitLineData
7ea6cba0
AB
1 BASH PATCH REPORT
2 =================
3
4Bash-Release: 5.2
5Patch-ID: bash52-012
6
7Bug-Reported-by: Kerin Millar <kfm@plushkava.net>
8Bug-Reference-ID: <20221002095107.89561bc811e549b55644df11@plushkava.net>
9Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2022-10/msg00001.html
10
11Bug-Description:
12
13When running in bash compatibility mode, nested command substitutions can
14leave the `extglob' option enabled.
15
16Patch (apply with `patch -p0'):
17
18*** /fs1/chet/scratch/bash-5.2.12/builtins/shopt.def 2022-11-07 10:31:42.000000000 -0500
19--- builtins/shopt.def 2022-10-14 09:30:11.000000000 -0400
20***************
21*** 150,153 ****
22--- 150,158 ----
23 #endif
24
25+ #if defined (EXTENDED_GLOB)
26+ int extglob_flag = EXTGLOB_DEFAULT;
27+ static int shopt_set_extglob PARAMS((char *, int));
28+ #endif
29+
30 int expaliases_flag = 0;
31 static int shopt_set_expaliases PARAMS((char *, int));
32***************
33*** 207,211 ****
34 #endif
35 #if defined (EXTENDED_GLOB)
36! { "extglob", &extended_glob, (shopt_set_func_t *)NULL },
37 #endif
38 { "extquote", &extended_quote, (shopt_set_func_t *)NULL },
39--- 212,216 ----
40 #endif
41 #if defined (EXTENDED_GLOB)
42! { "extglob", &extglob_flag, shopt_set_extglob },
43 #endif
44 { "extquote", &extended_quote, (shopt_set_func_t *)NULL },
45***************
46*** 378,382 ****
47
48 #if defined (EXTENDED_GLOB)
49! extended_glob = EXTGLOB_DEFAULT;
50 #endif
51
52--- 383,387 ----
53
54 #if defined (EXTENDED_GLOB)
55! extended_glob = extglob_flag = EXTGLOB_DEFAULT;
56 #endif
57
58***************
59*** 644,647 ****
60--- 649,663 ----
61 }
62
63+ #if defined (EXTENDED_GLOB)
64+ static int
65+ shopt_set_extglob (option_name, mode)
66+ char *option_name;
67+ int mode;
68+ {
69+ extended_glob = extglob_flag;
70+ return 0;
71+ }
72+ #endif
73+
74 #if defined (READLINE)
75 static int
76*** /fs1/chet/scratch/bash-5.2.12/builtins/common.h 2022-11-07 10:31:42.000000000 -0500
77--- builtins/common.h 2022-10-14 09:29:25.000000000 -0400
78***************
79*** 258,261 ****
80--- 258,265 ----
81 #endif
82
83+ #if defined (EXTENDED_GLOB)
84+ extern int extglob_flag;
85+ #endif
86+
87 extern int expaliases_flag;
88
89*** /fs1/chet/scratch/bash-5.2.12/execute_cmd.c 2022-11-07 10:31:42.000000000 -0500
90--- execute_cmd.c 2022-11-02 16:32:12.000000000 -0400
91***************
92*** 3991,4001 ****
93 #endif /* COND_REGEXP */
94 {
95- int oe;
96- oe = extended_glob;
97 extended_glob = 1;
98 result = binary_test (cond->op->word, arg1, arg2, TEST_PATMATCH|TEST_ARITHEXP|TEST_LOCALE)
99 ? EXECUTION_SUCCESS
100 : EXECUTION_FAILURE;
101! extended_glob = oe;
102 }
103 if (arg1 != nullstr)
104--- 4015,4023 ----
105 #endif /* COND_REGEXP */
106 {
107 extended_glob = 1;
108 result = binary_test (cond->op->word, arg1, arg2, TEST_PATMATCH|TEST_ARITHEXP|TEST_LOCALE)
109 ? EXECUTION_SUCCESS
110 : EXECUTION_FAILURE;
111! extended_glob = extglob_flag;
112 }
113 if (arg1 != nullstr)
114*** /fs1/chet/scratch/bash-5.2.9/parse.y 2022-11-07 10:31:47.000000000 -0500
115--- parse.y 2022-11-14 11:27:22.000000000 -0500
116***************
117*** 126,130 ****
118
119 #if defined (EXTENDED_GLOB)
120! extern int extended_glob;
121 #endif
122
123--- 126,130 ----
124
125 #if defined (EXTENDED_GLOB)
126! extern int extended_glob, extglob_flag;
127 #endif
128
129***************
130*** 3305,3309 ****
131 /* Reset to global value of extended glob */
132 if (parser_state & (PST_EXTPAT|PST_CMDSUBST))
133! extended_glob = global_extglob;
134 #endif
135 if (parser_state & (PST_CMDSUBST|PST_STRING))
136--- 3321,3325 ----
137 /* Reset to global value of extended glob */
138 if (parser_state & (PST_EXTPAT|PST_CMDSUBST))
139! extended_glob = extglob_flag;
140 #endif
141 if (parser_state & (PST_CMDSUBST|PST_STRING))
142***************
143*** 4125,4132 ****
144 #if defined (EXTENDED_GLOB)
145 /* If (parser_state & PST_EXTPAT), we're parsing an extended pattern for a
146! conditional command and have already set global_extglob appropriately. */
147 if (shell_compatibility_level <= 51 && was_extpat == 0)
148 {
149! local_extglob = global_extglob = extended_glob;
150 extended_glob = 1;
151 }
152--- 4143,4150 ----
153 #if defined (EXTENDED_GLOB)
154 /* If (parser_state & PST_EXTPAT), we're parsing an extended pattern for a
155! conditional command and have already set extended_glob appropriately. */
156 if (shell_compatibility_level <= 51 && was_extpat == 0)
157 {
158! local_extglob = extended_glob;
159 extended_glob = 1;
160 }
161***************
162*** 4236,4240 ****
163 sh_parser_state_t ps;
164 sh_input_line_state_t ls;
165! int orig_ind, nc, sflags, start_lineno;
166 char *ret, *ep, *ostring;
167
168--- 4256,4260 ----
169 sh_parser_state_t ps;
170 sh_input_line_state_t ls;
171! int orig_ind, nc, sflags, start_lineno, local_extglob;
172 char *ret, *ep, *ostring;
173
174***************
175*** 4279,4283 ****
176 expand_aliases = 0;
177 #if defined (EXTENDED_GLOB)
178! global_extglob = extended_glob; /* for reset_parser() */
179 #endif
180
181--- 4299,4303 ----
182 expand_aliases = 0;
183 #if defined (EXTENDED_GLOB)
184! local_extglob = extended_glob;
185 #endif
186
187***************
188*** 4297,4300 ****
189--- 4317,4323 ----
190 restore_parser_state (&ps);
191
192+ #if defined (EXTENDED_GLOB)
193+ extended_glob = local_extglob;
194+ #endif
195 token_to_read = 0;
196
197***************
198*** 4732,4741 ****
199--- 4755,4768 ----
200
201 /* rhs */
202+ #if defined (EXTENDED_GLOB)
203 local_extglob = extended_glob;
204 if (parser_state & PST_EXTPAT)
205 extended_glob = 1;
206+ #endif
207 tok = read_token (READ);
208+ #if defined (EXTENDED_GLOB)
209 if (parser_state & PST_EXTPAT)
210 extended_glob = local_extglob;
211+ #endif
212 parser_state &= ~(PST_REGEXP|PST_EXTPAT);
213
214***************
215*** 4784,4788 ****
216 COND_COM *cexp;
217
218- global_extglob = extended_glob;
219 cexp = cond_expr ();
220 return (make_cond_command (cexp));
221--- 4811,4814 ----
222*** y.tab.c.save 2022-11-07 10:31:47.000000000 -0500
223--- y.tab.c 2022-11-18 15:58:03.000000000 -0500
224***************
225*** 176,180 ****
226
227 #if defined (EXTENDED_GLOB)
228! extern int extended_glob;
229 #endif
230
231--- 176,180 ----
232
233 #if defined (EXTENDED_GLOB)
234! extern int extended_glob, extglob_flag;
235 #endif
236
237***************
238*** 5616,5620 ****
239 /* Reset to global value of extended glob */
240 if (parser_state & (PST_EXTPAT|PST_CMDSUBST))
241! extended_glob = global_extglob;
242 #endif
243 if (parser_state & (PST_CMDSUBST|PST_STRING))
244--- 5616,5620 ----
245 /* Reset to global value of extended glob */
246 if (parser_state & (PST_EXTPAT|PST_CMDSUBST))
247! extended_glob = extglob_flag;
248 #endif
249 if (parser_state & (PST_CMDSUBST|PST_STRING))
250***************
251*** 6436,6443 ****
252 #if defined (EXTENDED_GLOB)
253 /* If (parser_state & PST_EXTPAT), we're parsing an extended pattern for a
254! conditional command and have already set global_extglob appropriately. */
255 if (shell_compatibility_level <= 51 && was_extpat == 0)
256 {
257! local_extglob = global_extglob = extended_glob;
258 extended_glob = 1;
259 }
260--- 6436,6443 ----
261 #if defined (EXTENDED_GLOB)
262 /* If (parser_state & PST_EXTPAT), we're parsing an extended pattern for a
263! conditional command and have already set extended_glob appropriately. */
264 if (shell_compatibility_level <= 51 && was_extpat == 0)
265 {
266! local_extglob = extended_glob;
267 extended_glob = 1;
268 }
269***************
270*** 6547,6551 ****
271 sh_parser_state_t ps;
272 sh_input_line_state_t ls;
273! int orig_ind, nc, sflags, start_lineno;
274 char *ret, *ep, *ostring;
275
276--- 6547,6551 ----
277 sh_parser_state_t ps;
278 sh_input_line_state_t ls;
279! int orig_ind, nc, sflags, start_lineno, local_extglob;
280 char *ret, *ep, *ostring;
281
282***************
283*** 6590,6594 ****
284 expand_aliases = 0;
285 #if defined (EXTENDED_GLOB)
286! global_extglob = extended_glob; /* for reset_parser() */
287 #endif
288
289--- 6590,6594 ----
290 expand_aliases = 0;
291 #if defined (EXTENDED_GLOB)
292! local_extglob = extended_glob;
293 #endif
294
295***************
296*** 6608,6611 ****
297--- 6608,6614 ----
298 restore_parser_state (&ps);
299
300+ #if defined (EXTENDED_GLOB)
301+ extended_glob = local_extglob;
302+ #endif
303 token_to_read = 0;
304
305***************
306*** 7043,7052 ****
307--- 7046,7059 ----
308
309 /* rhs */
310+ #if defined (EXTENDED_GLOB)
311 local_extglob = extended_glob;
312 if (parser_state & PST_EXTPAT)
313 extended_glob = 1;
314+ #endif
315 tok = read_token (READ);
316+ #if defined (EXTENDED_GLOB)
317 if (parser_state & PST_EXTPAT)
318 extended_glob = local_extglob;
319+ #endif
320 parser_state &= ~(PST_REGEXP|PST_EXTPAT);
321
322***************
323*** 7095,7099 ****
324 COND_COM *cexp;
325
326- global_extglob = extended_glob;
327 cexp = cond_expr ();
328 return (make_cond_command (cexp));
329--- 7102,7105 ----
330*** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400
331--- patchlevel.h 2020-10-01 11:01:28.000000000 -0400
332***************
333*** 26,30 ****
334 looks for to find the patch level (for the sccs version string). */
335
336! #define PATCHLEVEL 11
337
338 #endif /* _PATCHLEVEL_H_ */
339--- 26,30 ----
340 looks for to find the patch level (for the sccs version string). */
341
342! #define PATCHLEVEL 12
343
344 #endif /* _PATCHLEVEL_H_ */