41 lines
1.2 KiB
Diff
41 lines
1.2 KiB
Diff
|
BASH PATCH REPORT
|
||
|
=================
|
||
|
|
||
|
Bash-Release: 4.2
|
||
|
Patch-ID: bash42-004
|
||
|
|
||
|
Bug-Reported-by: Mike Frysinger <vapier@gentoo.org>
|
||
|
Bug-Reference-ID: <201102182106.17834.vapier@gentoo.org>
|
||
|
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00222.html
|
||
|
|
||
|
Bug-Description:
|
||
|
|
||
|
When used in contexts where word splitting and quote removal were not
|
||
|
performed, such as pattern removal or pattern substitution, empty strings
|
||
|
(either literal or resulting from quoted variables that were unset or
|
||
|
null) were not matched correctly, resulting in failure.
|
||
|
|
||
|
Patch (apply with `patch -p0'):
|
||
|
|
||
|
--- a/subst.c
|
||
|
+++ b/subst.c
|
||
|
@@ -3373,7 +3373,7 @@ expand_string_for_rhs (string, quoted, d
|
||
|
if (string == 0 || *string == '\0')
|
||
|
return (WORD_LIST *)NULL;
|
||
|
|
||
|
- td.flags = 0;
|
||
|
+ td.flags = W_NOSPLIT2; /* no splitting, remove "" and '' */
|
||
|
td.word = string;
|
||
|
tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, has_dollar_at);
|
||
|
return (tresult);
|
||
|
--- a/patchlevel.h
|
||
|
+++ b/patchlevel.h
|
||
|
@@ -25,6 +25,6 @@
|
||
|
regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
|
||
|
looks for to find the patch level (for the sccs version string). */
|
||
|
|
||
|
-#define PATCHLEVEL 3
|
||
|
+#define PATCHLEVEL 4
|
||
|
|
||
|
#endif /* _PATCHLEVEL_H_ */
|