BASH PATCH REPORT ================= Bash-Release: 3.2 Patch-ID: bash32-047 Bug-Reported-by: Roman Rakus Bug-Reference-ID: <48A89EBC.906@redhat.com> Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-08/msg00026.html Bug-Description: When using the `.' (source) builtin, under certain circumstances bash was too careful in discarding state to preserve internal consistency. One effect was that assignments to readonly variables would cause entire scripts to be aborted instead of execution of the offending command. This behavior was introduced by bash-3.2 patch 20. Patch: *** /usr/src/local/chet/src/bash/bash-3.2-patched/subst.c 2008-04-29 21:24:55.000000000 -0400 --- subst.c 2008-11-13 17:44:25.000000000 -0500 *************** *** 138,142 **** extern int last_command_exit_value, last_command_exit_signal; extern int subshell_environment; ! extern int subshell_level; extern int eof_encountered; extern int return_catch_flag, return_catch_value; --- 138,142 ---- extern int last_command_exit_value, last_command_exit_signal; extern int subshell_environment; ! extern int subshell_level, parse_and_execute_level; extern int eof_encountered; extern int return_catch_flag, return_catch_value; *************** *** 7673,7677 **** expanding_redir = 0; ! top_level_cleanup (); /* from sig.c */ jump_to_top_level (v); --- 7673,7679 ---- expanding_redir = 0; ! if (parse_and_execute_level == 0) ! top_level_cleanup (); /* from sig.c */ ! jump_to_top_level (v); *** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 --- patchlevel.h Mon Oct 16 14:22:54 2006 *************** *** 26,30 **** looks for to find the patch level (for the sccs version string). */ ! #define PATCHLEVEL 46 #endif /* _PATCHLEVEL_H_ */ --- 26,30 ---- looks for to find the patch level (for the sccs version string). */ ! #define PATCHLEVEL 47 #endif /* _PATCHLEVEL_H_ */