From: Chet Ramey Date: Tue, 10 Jul 2012 13:44:07 +0000 (-0400) Subject: Bash-4.2 patch 32 X-Git-Tag: bash-4.3~15 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a601c7490294ca417adf657bbe06c83a18e0c4c8;p=thirdparty%2Fbash.git Bash-4.2 patch 32 --- diff --git a/patchlevel.h b/patchlevel.h index eecb9f557..70d815ad7 100644 --- 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 31 +#define PATCHLEVEL 32 #endif /* _PATCHLEVEL_H_ */ diff --git a/subst.c b/subst.c index fa4e5dc9a..19151201e 100644 --- a/subst.c +++ b/subst.c @@ -8151,6 +8151,14 @@ add_string: temp = tword->word; dispose_word_desc (tword); + /* Kill quoted nulls; we will add them back at the end of + expand_word_internal if nothing else in the string */ + if (had_quoted_null && temp && QUOTED_NULL (temp)) + { + FREE (temp); + temp = (char *)NULL; + } + goto add_string; break; @@ -8555,7 +8563,7 @@ finished_with_string: tword->flags |= W_NOEXPAND; /* XXX */ if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) tword->flags |= W_QUOTED; - if (had_quoted_null) + if (had_quoted_null && QUOTED_NULL (istring)) tword->flags |= W_HASQUOTEDNULL; list = make_word_list (tword, (WORD_LIST *)NULL); } @@ -8586,7 +8594,7 @@ finished_with_string: tword->flags |= W_NOGLOB; if (word->flags & W_NOEXPAND) tword->flags |= W_NOEXPAND; - if (had_quoted_null) + if (had_quoted_null && QUOTED_NULL (istring)) tword->flags |= W_HASQUOTEDNULL; /* XXX */ list = make_word_list (tword, (WORD_LIST *)NULL); }