| From https://ftp.gnu.org/gnu/bash/bash-5.0-patches/bash50-011 |
| |
| Signed-off-by: Pascal de Bruijn <p.debruijn@unilogic.nl> |
| |
| BASH PATCH REPORT |
| ================= |
| |
| Bash-Release: 5.0 |
| Patch-ID: bash50-011 |
| |
| Bug-Reported-by: Matt Whitlock |
| Bug-Reference-ID: |
| Bug-Reference-URL: https://savannah.gnu.org/support/?109671 |
| |
| Bug-Description: |
| |
| The conditional command did not perform appropriate quoted null character |
| removal on its arguments, causing syntax errors and attempts to stat |
| invalid pathnames. |
| |
| Patch (apply with `patch -p0'): |
| |
| *** ../bash-5.0-patched/subst.c 2018-12-22 17:43:37.000000000 -0500 |
| --- b/subst.c 2019-04-14 13:25:41.000000000 -0400 |
| *************** |
| *** 3626,3630 **** |
| SPECIAL is 2, this is an rhs argument for the =~ operator, and should |
| be quoted appropriately for regcomp/regexec. The caller is responsible |
| ! for removing the backslashes if the unquoted word is needed later. */ |
| char * |
| cond_expand_word (w, special) |
| --- 3642,3648 ---- |
| SPECIAL is 2, this is an rhs argument for the =~ operator, and should |
| be quoted appropriately for regcomp/regexec. The caller is responsible |
| ! 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 * |
| cond_expand_word (w, special) |
| *************** |
| *** 3647,3650 **** |
| --- 3665,3670 ---- |
| if (special == 0) /* LHS */ |
| { |
| + if (l->word) |
| + word_list_remove_quoted_nulls (l); |
| dequote_list (l); |
| r = string_list (l); |
| *** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 |
| --- b/patchlevel.h 2016-10-01 11:01:28.000000000 -0400 |
| *************** |
| *** 26,30 **** |
| looks for to find the patch level (for the sccs version string). */ |
| |
| ! #define PATCHLEVEL 10 |
| |
| #endif /* _PATCHLEVEL_H_ */ |
| --- 26,30 ---- |
| looks for to find the patch level (for the sccs version string). */ |
| |
| ! #define PATCHLEVEL 11 |
| |
| #endif /* _PATCHLEVEL_H_ */ |