From 7559f83efff43a0d27933747751a35762e666bbc Mon Sep 17 00:00:00 2001 From: Martijn Dekker Date: Sun, 7 Jun 2020 22:29:29 +0200 Subject: [PATCH] Fix ksh hanging in pipes Under certain conditions, ksh scripts may hang when piped through a program that terminates before EOF. Discussion and reproducer: https://bugzilla.redhat.com/show_bug.cgi?id=1457990 https://www.mail-archive.com/ast-developers@lists.research.att.com/msg01961.html src/cmd/ksh93/sh/jobs.c: - In job_wait(), correctly set the terminal foreground process group when resuming a process. (cherry picked from commit 99ef2ca5309da91fdead74bea00743960d470c6a) --- src/cmd/ksh93/sh/jobs.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/cmd/ksh93/sh/jobs.c b/src/cmd/ksh93/sh/jobs.c index 3f69be8b6..0c87d164b 100644 --- a/src/cmd/ksh93/sh/jobs.c +++ b/src/cmd/ksh93/sh/jobs.c @@ -1578,6 +1578,7 @@ int job_wait(register pid_t pid) if( pw->p_exit!=SIGTTIN && pw->p_exit!=SIGTTOU) break; + tcsetpgrp(JOBTTY,pw->p_pgrp); killpg(pw->p_pgrp,SIGCONT); } else /* ignore stop when non-interactive */