			     BASH PATCH REPORT
			     =================

Bash-Release:	5.2
Patch-ID:	bash52-028

Bug-Reported-by:	Mark March <march@systempad.cloud>
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_ */
