bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bash-4.2 Official Patch 46


From: Chet Ramey
Subject: Bash-4.2 Official Patch 46
Date: Mon, 31 Mar 2014 16:56:02 -0400

                             BASH PATCH REPORT
                             =================

Bash-Release:   4.2
Patch-ID:       bash42-046

Bug-Reported-by:        "Theodoros V. Kalamatianos" <thkala@gmail.com>
Bug-Reference-ID:       <20140112011131.GE17667@infinity.metashade.com>
Bug-Reference-URL:      
http://lists.gnu.org/archive/html/bug-bash/2014-01/msg00044.html

Bug-Description:

Bash-4.2 patch 32 introduced a problem with "$@" and arrays expanding empty
positional parameters or array elements when using substring expansion,
pattern substitution, or case modfication.  The empty parameters or array
elements are removed instead of expanding to empty strings ("").

Patch (apply with `patch -p0'):

*** ../bash-4.2-patched/subst.c 2012-12-31 11:52:56.000000000 -0500
--- subst.c     2014-03-31 14:19:56.000000000 -0400
***************
*** 7243,7247 ****
        ret = alloc_word_desc ();
        ret->word = temp1;
!       if (temp1 && QUOTED_NULL (temp1) && (quoted & 
(Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
        ret->flags |= W_QUOTED|W_HASQUOTEDNULL;
        return ret;
--- 7243,7253 ----
        ret = alloc_word_desc ();
        ret->word = temp1;
!       /* We test quoted_dollar_atp because we want variants with double-quoted
!        "$@" to take a different code path. In fact, we make sure at the end
!        of expand_word_internal that we're only looking at these flags if
!        quoted_dollar_at == 0. */
!       if (temp1 && 
!           (quoted_dollar_atp == 0 || *quoted_dollar_atp == 0) &&
!         QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
        ret->flags |= W_QUOTED|W_HASQUOTEDNULL;
        return ret;
*** ../bash-4.2-patched/patchlevel.h    Sat Jun 12 20:14:48 2010
--- patchlevel.h        Thu Feb 24 21:41:34 2011
***************
*** 26,30 ****
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 45
  
  #endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
     looks for to find the patch level (for the sccs version string). */
  
! #define PATCHLEVEL 46
  
  #endif /* _PATCHLEVEL_H_ */

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    chet@case.edu    http://cnswww.cns.cwru.edu/~chet/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]