Blame SOURCES/bash42-004

ff19ae
			     BASH PATCH REPORT
ff19ae
			     =================
ff19ae
ff19ae
Bash-Release:	4.2
ff19ae
Patch-ID:	bash42-004
ff19ae
ff19ae
Bug-Reported-by:	Mike Frysinger <vapier@gentoo.org>
ff19ae
Bug-Reference-ID:	<201102182106.17834.vapier@gentoo.org>
ff19ae
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00222.html
ff19ae
ff19ae
Bug-Description:
ff19ae
ff19ae
When used in contexts where word splitting and quote removal were not
ff19ae
performed, such as pattern removal or pattern substitution, empty strings
ff19ae
(either literal or resulting from quoted variables that were unset or
ff19ae
null) were not matched correctly, resulting in failure.
ff19ae
ff19ae
Patch (apply with `patch -p0'):
ff19ae
ff19ae
*** ../bash-4.2-patched/subst.c	2011-01-02 16:12:51.000000000 -0500
ff19ae
--- subst.c	2011-02-18 22:30:13.000000000 -0500
ff19ae
***************
ff19ae
*** 3373,3379 ****
ff19ae
    if (string == 0 || *string == '\0')
ff19ae
      return (WORD_LIST *)NULL;
ff19ae
  
ff19ae
!   td.flags = 0;
ff19ae
    td.word = string;
ff19ae
    tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, has_dollar_at);
ff19ae
    return (tresult);
ff19ae
--- 3373,3379 ----
ff19ae
    if (string == 0 || *string == '\0')
ff19ae
      return (WORD_LIST *)NULL;
ff19ae
  
ff19ae
!   td.flags = W_NOSPLIT2;		/* no splitting, remove "" and '' */
ff19ae
    td.word = string;
ff19ae
    tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, has_dollar_at);
ff19ae
    return (tresult);
ff19ae
*** ../bash-4.2-patched/patchlevel.h	Sat Jun 12 20:14:48 2010
ff19ae
--- patchlevel.h	Thu Feb 24 21:41:34 2011
ff19ae
***************
ff19ae
*** 26,30 ****
ff19ae
     looks for to find the patch level (for the sccs version string). */
ff19ae
  
ff19ae
! #define PATCHLEVEL 3
ff19ae
  
ff19ae
  #endif /* _PATCHLEVEL_H_ */
ff19ae
--- 26,30 ----
ff19ae
     looks for to find the patch level (for the sccs version string). */
ff19ae
  
ff19ae
! #define PATCHLEVEL 4
ff19ae
  
ff19ae
  #endif /* _PATCHLEVEL_H_ */