summaryrefslogtreecommitdiff
path: root/core/bash/bash53-012
diff options
context:
space:
mode:
authorrawnix ports <ports@rawnix.org>2026-09-26 18:19:05 +0000
committerrawnix ports <ports@rawnix.org>2026-09-26 18:19:05 +0000
commitc82e88dd00d1b0b7fcfb4e5628d99611388cef6f (patch)
tree56d864b5a5c6c145edd96178ae219a8f90e191a6 /core/bash/bash53-012
downloadports-c82e88dd00d1b0b7fcfb4e5628d99611388cef6f.tar.gz
sync 2026-09-26 18:19 UTC
1672 files changed, 151396 insertions(+)
Diffstat (limited to 'core/bash/bash53-012')
-rw-r--r--core/bash/bash53-01280
1 files changed, 80 insertions, 0 deletions
diff --git a/core/bash/bash53-012 b/core/bash/bash53-012
new file mode 100644
index 0000000..aac53bc
--- /dev/null
+++ b/core/bash/bash53-012
@@ -0,0 +1,80 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 5.3
+Patch-ID: bash53-012
+
+Bug-Reported-by: earl_chew@yahoo.com
+Bug-Reference-ID:
+Bug-Reference-URL: https://savannah.gnu.org/bugs/?67745
+
+Bug-Description:
+
+If a subshell with an inherited EXIT trap receives a fatal signal before
+it clears the exit trap, and before it restores its original signal
+handlers, it's possible for it to inappropriately run the inherited EXIT
+trap.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.3-patched/execute_cmd.c Thu Jun 5 11:02:01 2025
+--- execute_cmd.c Fri Jan 9 10:21:30 2026
+***************
+*** 1644,1648 ****
+ if (user_subshell)
+ {
+! subshell_environment = SUBSHELL_PAREN; /* XXX */
+ if (asynchronous)
+ subshell_environment |= SUBSHELL_ASYNC;
+--- 1681,1685 ----
+ if (user_subshell)
+ {
+! subshell_environment = SUBSHELL_PAREN|SUBSHELL_IGNTRAP; /* XXX */
+ if (asynchronous)
+ subshell_environment |= SUBSHELL_ASYNC;
+***************
+*** 1650,1654 ****
+ else
+ {
+! subshell_environment = 0; /* XXX */
+ if (asynchronous)
+ subshell_environment |= SUBSHELL_ASYNC;
+--- 1687,1691 ----
+ else
+ {
+! subshell_environment = SUBSHELL_IGNTRAP; /* XXX */
+ if (asynchronous)
+ subshell_environment |= SUBSHELL_ASYNC;
+*** ../bash-5.3-patched/sig.c Wed Dec 18 15:52:06 2024
+--- sig.c Fri Jan 9 10:21:43 2026
+***************
+*** 639,643 ****
+ comsub_ignore_return = return_catch_flag = wait_intr_flag = 0;
+
+! run_exit_trap (); /* XXX - run exit trap possibly in signal context? */
+
+ kill_shell (sig);
+--- 645,652 ----
+ comsub_ignore_return = return_catch_flag = wait_intr_flag = 0;
+
+! /* Don't run the exit trap if we're supposed to be ignoring traps in a
+! subshell environment. */
+! if ((subshell_environment & SUBSHELL_IGNTRAP) == 0)
+! run_exit_trap (); /* XXX - run exit trap possibly in signal context? */
+
+ kill_shell (sig);
+*** ../bash-5.3/patchlevel.h 2020-06-22 14:51:03.000000000 -0400
+--- patchlevel.h 2020-10-01 11:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 11
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 12
+
+ #endif /* _PATCHLEVEL_H_ */