Bash-5.0 patch 11: fix quoted null character removal in operands of conditional ([[) commands

This commit is contained in:
Chet Ramey
2019-08-29 11:21:20 -04:00
parent 6a3116f58c
commit d894cfd104
2 changed files with 6 additions and 2 deletions

View File

@@ -25,6 +25,6 @@
regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
looks for to find the patch level (for the sccs version string). */ looks for to find the patch level (for the sccs version string). */
#define PATCHLEVEL 10 #define PATCHLEVEL 11
#endif /* _PATCHLEVEL_H_ */ #endif /* _PATCHLEVEL_H_ */

View File

@@ -3625,7 +3625,9 @@ remove_backslashes (string)
this case, we quote the string specially for the globbing code. If this case, we quote the string specially for the globbing code. If
SPECIAL is 2, this is an rhs argument for the =~ operator, and should SPECIAL is 2, this is an rhs argument for the =~ operator, and should
be quoted appropriately for regcomp/regexec. The caller is responsible be quoted appropriately for regcomp/regexec. The caller is responsible
for removing the backslashes if the unquoted word is needed later. */ for removing the backslashes if the unquoted word is needed later. In
any case, since we don't perform word splitting, we need to do quoted
null character removal. */
char * char *
cond_expand_word (w, special) cond_expand_word (w, special)
WORD_DESC *w; WORD_DESC *w;
@@ -3646,6 +3648,8 @@ cond_expand_word (w, special)
{ {
if (special == 0) /* LHS */ if (special == 0) /* LHS */
{ {
if (l->word)
word_list_remove_quoted_nulls (l);
dequote_list (l); dequote_list (l);
r = string_list (l); r = string_list (l);
} }