41 lines
1.1 KiB
Diff
41 lines
1.1 KiB
Diff
|
BASH PATCH REPORT
|
||
|
=================
|
||
|
|
||
|
Bash-Release: 4.2
|
||
|
Patch-ID: bash42-024
|
||
|
|
||
|
Bug-Reported-by: Jim Avera <james_avera@yahoo.com>
|
||
|
Bug-Reference-ID: <4F29E07A.80405@yahoo.com>
|
||
|
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-02/msg00001.html
|
||
|
|
||
|
Bug-Description:
|
||
|
|
||
|
When `printf -v' is used to set an array element, the format string contains
|
||
|
`%b', and the corresponding argument is the empty string, the buffer used
|
||
|
to store the value to be assigned can be NULL, which results in NUL being
|
||
|
assigned to the array element. This causes a seg fault when it's used later.
|
||
|
|
||
|
Patch (apply with `patch -p0'):
|
||
|
|
||
|
--- a/builtins/printf.def
|
||
|
+++ b/builtins/printf.def
|
||
|
@@ -255,6 +255,8 @@ printf_builtin (list)
|
||
|
#endif
|
||
|
{
|
||
|
vflag = 1;
|
||
|
+ if (vbsize == 0)
|
||
|
+ vbuf = xmalloc (vbsize = 16);
|
||
|
vblen = 0;
|
||
|
if (vbuf)
|
||
|
vbuf[0] = 0;
|
||
|
--- 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 23
|
||
|
+#define PATCHLEVEL 24
|
||
|
|
||
|
#endif /* _PATCHLEVEL_H_ */
|