From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-039 Signed-off-by: Gustavo Zacarias BASH PATCH REPORT ================= Bash-Release: 4.3 Patch-ID: bash43-039 Bug-Reported-by: SN 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_ */