| From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-039 |
| |
| Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> |
| |
| BASH PATCH REPORT |
| ================= |
| |
| Bash-Release: 4.3 |
| Patch-ID: bash43-039 |
| |
| Bug-Reported-by: SN <poczta-sn@gazeta.pl> |
| Bug-Reference-ID: <54E2554C.205@gazeta.pl> |
| Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-02/msg00060.html |
| |
| Bug-Description: |
| |
| Using the output of `declare -p' when run in a function can result in variables |
| that are invisible to `declare -p'. This problem occurs when an assignment |
| builtin such as `declare' receives a quoted compound array assignment as one of |
| its arguments. |
| |
| Patch (apply with `patch -p0'): |
| |
| *** a/bash-4.3-patched/arrayfunc.c 2014-10-01 13:08:48.000000000 -0400 |
| --- b/arrayfunc.c 2015-02-19 14:33:05.000000000 -0500 |
| *************** |
| *** 405,408 **** |
| --- 405,411 ---- |
| else |
| array_insert (a, i, l->word->word); |
| + |
| + VUNSETATTR (var, att_invisible); /* no longer invisible */ |
| + |
| return var; |
| } |
| *************** |
| *** 635,638 **** |
| --- 638,645 ---- |
| if (nlist) |
| dispose_words (nlist); |
| + |
| + if (var) |
| + VUNSETATTR (var, att_invisible); /* no longer invisible */ |
| + |
| return (var); |
| } |
| *** a/bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 |
| --- b/patchlevel.h 2014-03-20 20:01:28.000000000 -0400 |
| *************** |
| *** 26,30 **** |
| looks for to find the patch level (for the sccs version string). */ |
| |
| ! #define PATCHLEVEL 38 |
| |
| #endif /* _PATCHLEVEL_H_ */ |
| --- 26,30 ---- |
| looks for to find the patch level (for the sccs version string). */ |
| |
| ! #define PATCHLEVEL 39 |
| |
| #endif /* _PATCHLEVEL_H_ */ |