66 lines
1.9 KiB
Plaintext
66 lines
1.9 KiB
Plaintext
BASH PATCH REPORT
|
|
=================
|
|
|
|
Bash-Release: 3.2
|
|
Patch-ID: bash32-047
|
|
|
|
Bug-Reported-by: Roman Rakus <rrakus@redhat.com>
|
|
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_ */
|