From https://ftp.gnu.org/gnu/bash/bash-4.4-patches/bash44-002 Signed-off-by: Peter Korsgaard <peter@korsgaard.com> 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'): *** a/bash-4.4/subst.c 2016-08-30 16:46:38.000000000 -0400 --- b/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; *** a/bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 --- b/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_ */