BASH PATCH REPORT ================= Bash-Release: 5.2 Patch-ID: bash52-028 Bug-Reported-by: Mark March Bug-Reference-ID: <834896722.6304071.1718744118467@mail.yahoo.com> Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2024-06/msg00122.html Bug-Description: A DEBUG trap in an asynchronous process can steal the controlling terminal away from the calling shell, causing it to exit. Patch (apply with `patch -p0'): *** ../bash-20240609/trap.c Fri May 3 12:12:38 2024 --- trap.c Wed Jun 26 10:41:40 2024 *************** *** 1217,1221 **** restore_pgrp_pipe (save_pipe); # endif ! if (pipeline_pgrp > 0 && ((subshell_environment & (SUBSHELL_ASYNC|SUBSHELL_PIPE)) == 0)) give_terminal_to (pipeline_pgrp, 1); --- 1217,1223 ---- restore_pgrp_pipe (save_pipe); # endif ! /* If the trap command gave the terminal to another process group, ! restore it. XXX - check running_in_background? */ ! if (job_control && pipeline_pgrp > 0 && ((subshell_environment & (SUBSHELL_ASYNC|SUBSHELL_PIPE)) == 0)) give_terminal_to (pipeline_pgrp, 1); *** ../bash-5.2/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 27 #endif /* _PATCHLEVEL_H_ */ --- 26,30 ---- looks for to find the patch level (for the sccs version string). */ ! #define PATCHLEVEL 28 #endif /* _PATCHLEVEL_H_ */