101-upstream-bash43-001.patch (1516B)
1 BASH PATCH REPORT 2 ================= 3 4 Bash-Release: 4.3 5 Patch-ID: bash43-001 6 7 Bug-Reported-by: NBaH <nbah@sfr.fr> 8 Bug-Reference-ID: <ler0b5$iu9$1@speranza.aioe.org> 9 Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00092.html 10 11 Bug-Description: 12 13 A missing check for a valid option prevented `test -R' from working. There 14 is another problem that causes bash to look up the wrong variable name when 15 processing the argument to `test -R'. 16 17 Patch (apply with `patch -p0'): 18 19 --- a/test.c 20 +++ b/test.c 21 @@ -646,8 +646,8 @@ unary_test (op, arg) 22 return (v && invisible_p (v) == 0 && var_isset (v) ? TRUE : FALSE); 23 24 case 'R': 25 - v = find_variable (arg); 26 - return (v && invisible_p (v) == 0 && var_isset (v) && nameref_p (v) ? TRUE : FALSE); 27 + v = find_variable_noref (arg); 28 + return ((v && invisible_p (v) == 0 && var_isset (v) && nameref_p (v)) ? TRUE : FALSE); 29 } 30 31 /* We can't actually get here, but this shuts up gcc. */ 32 @@ -723,6 +723,7 @@ test_unop (op) 33 case 'o': case 'p': case 'r': case 's': case 't': 34 case 'u': case 'v': case 'w': case 'x': case 'z': 35 case 'G': case 'L': case 'O': case 'S': case 'N': 36 + case 'R': 37 return (1); 38 } 39 40 --- a/patchlevel.h 41 +++ b/patchlevel.h 42 @@ -25,6 +25,6 @@ 43 regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh 44 looks for to find the patch level (for the sccs version string). */ 45 46 -#define PATCHLEVEL 0 47 +#define PATCHLEVEL 1 48 49 #endif /* _PATCHLEVEL_H_ */