diff --git a/NEWS b/NEWS index 0f2183fdf..1c803b4d2 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,11 @@ For full details, see the git log at: https://github.com/ksh93/ksh Any uppercase BUG_* names are modernish shell bug IDs. +2020-08-06: + +- Fixed a crash that occurred intermittently if 'set -b'/'set -o notify' is + active and $PS1 contains a command substitution running an external command. + 2020-08-05: - Fixed a bug in functions that caused ksh to crash when an array with an diff --git a/src/cmd/ksh93/include/version.h b/src/cmd/ksh93/include/version.h index 944606454..8cd98b30a 100644 --- a/src/cmd/ksh93/include/version.h +++ b/src/cmd/ksh93/include/version.h @@ -17,4 +17,4 @@ * David Korn * * * ***********************************************************************/ -#define SH_RELEASE "93u+m 2020-08-05" +#define SH_RELEASE "93u+m 2020-08-06" diff --git a/src/cmd/ksh93/sh.1 b/src/cmd/ksh93/sh.1 index e6acd14dd..578f0606e 100644 --- a/src/cmd/ksh93/sh.1 +++ b/src/cmd/ksh93/sh.1 @@ -2185,20 +2185,16 @@ is used. If the value is null, no timing information is displayed. .TP .B .SM TMOUT -If set to a value greater than zero, -.B -.SM TMOUT -will be the default timeout value for the +Terminal read timeout. If set to a value greater than zero, the .B read -built-in command. -The +built-in command and the .B select -compound command terminates after +compound command time out after .B .SM TMOUT seconds when input is from a terminal. -Otherwise, -the shell will terminate if a line is not entered within +An interactive shell will issue a warning and allow for an extra 60 second +timeout grace period before terminating if a line is not entered within the prescribed number of seconds while reading from a terminal. (Note that the shell can be compiled with a maximum bound for this value which cannot be exceeded.) diff --git a/src/cmd/ksh93/sh/jobs.c b/src/cmd/ksh93/sh/jobs.c index 3170276e0..31b5d469c 100644 --- a/src/cmd/ksh93/sh/jobs.c +++ b/src/cmd/ksh93/sh/jobs.c @@ -460,7 +460,7 @@ int job_reap(register int sig) nochild = 1; } shp->gd->waitevent = waitevent; - if(sh_isoption(SH_NOTIFY) && sh_isstate(SH_TTYWAIT)) + if(job.jobcontrol && sh_isoption(SH_NOTIFY) && sh_isstate(SH_TTYWAIT)) { outfile = sfstderr; job_list(pw,JOB_NFLAG|JOB_NLFLAG);