70 lines
1.9 KiB
Text
70 lines
1.9 KiB
Text
|
BASH PATCH REPORT
|
||
|
=================
|
||
|
|
||
|
Bash-Release: 4.4
|
||
|
Patch-ID: bash44-002
|
||
|
|
||
|
Bug-Reported-by: Eric Pruitt <eric.pruitt@gmail.com>
|
||
|
Bug-Reference-ID: <20160916055120.GA28272@sinister.codevat.com>
|
||
|
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2016-09/msg00015.html
|
||
|
|
||
|
Bug-Description:
|
||
|
|
||
|
Bash-4.4 warns when discarding NUL bytes in command substitution output
|
||
|
instead of silently dropping them. This patch changes the warnings from
|
||
|
one per NUL byte encountered to one warning per command substitution.
|
||
|
|
||
|
Patch (apply with `patch -p0'):
|
||
|
|
||
|
*** ../bash-4.4/subst.c 2016-08-30 16:46:38.000000000 -0400
|
||
|
--- subst.c 2016-09-26 10:20:19.000000000 -0400
|
||
|
***************
|
||
|
*** 5932,5935 ****
|
||
|
--- 5933,5937 ----
|
||
|
int istring_index, istring_size, c, tflag, skip_ctlesc, skip_ctlnul;
|
||
|
ssize_t bufn;
|
||
|
+ int nullbyte;
|
||
|
|
||
|
istring = (char *)NULL;
|
||
|
***************
|
||
|
*** 5939,5942 ****
|
||
|
--- 5941,5946 ----
|
||
|
skip_ctlesc |= *s == CTLESC, skip_ctlnul |= *s == CTLNUL;
|
||
|
|
||
|
+ nullbyte = 0;
|
||
|
+
|
||
|
/* Read the output of the command through the pipe. This may need to be
|
||
|
changed to understand multibyte characters in the future. */
|
||
|
***************
|
||
|
*** 5957,5961 ****
|
||
|
{
|
||
|
#if 1
|
||
|
! internal_warning ("%s", _("command substitution: ignored null byte in input"));
|
||
|
#endif
|
||
|
continue;
|
||
|
--- 5961,5969 ----
|
||
|
{
|
||
|
#if 1
|
||
|
! if (nullbyte == 0)
|
||
|
! {
|
||
|
! internal_warning ("%s", _("command substitution: ignored null byte in input"));
|
||
|
! nullbyte = 1;
|
||
|
! }
|
||
|
#endif
|
||
|
continue;
|
||
|
*** ../bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
|
||
|
--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
|
||
|
***************
|
||
|
*** 26,30 ****
|
||
|
looks for to find the patch level (for the sccs version string). */
|
||
|
|
||
|
! #define PATCHLEVEL 1
|
||
|
|
||
|
#endif /* _PATCHLEVEL_H_ */
|
||
|
--- 26,30 ----
|
||
|
looks for to find the patch level (for the sccs version string). */
|
||
|
|
||
|
! #define PATCHLEVEL 2
|
||
|
|
||
|
#endif /* _PATCHLEVEL_H_ */
|