mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-02-15 04:32:24 +00:00
job_unpost(): fix segfault
This function could segfault under certain conditions (in macOS
Terminal, when ksh received SIGWINCH and a complex PS1 prompt is
defined; see 61437b27
)
0 ksh job_unpost + 49 (jobs.c:1703)
1 ksh job_reap + 1632 (jobs.c:468)
2 ksh job_wait + 942 (jobs.c:1525)
3 ksh sh_exec + 19579 (xec.c:1627)
4 ksh sh_eval + 545 (xec.c:763)
5 ksh sh_trap + 427
6 ksh ed_emacsread + 3598 (emacs.c:1072)
7 ksh slowread + 489 (io.c:1962)
8 ksh sfrd + 1026 (sfrd.c:253)
9 ksh _sffilbuf + 587 (sffilbuf.c:105)
10 ksh sfreserve + 662
11 ksh exfile + 1922 (main.c:527)
12 ksh sh_main + 1071 (main.c:351)
13 libdyld.dylib start + 1
src/cmd/ksh93/sh/jobs.c: job_unpost():
- Fix a dereference of a possible null pointer returned by
job_byjid(). Add a check and return if that pointer is null.
This commit is contained in:
parent
7222ba3af7
commit
8361e065e6
1 changed files with 2 additions and 0 deletions
|
@ -1699,6 +1699,8 @@ static struct process *job_unpost(register struct process *pwtop,int notify)
|
|||
sfsync(sfstderr);
|
||||
#endif /* DEBUG */
|
||||
pwtop = pw = job_byjid((int)pwtop->p_job);
|
||||
if(!pw)
|
||||
return(0);
|
||||
#ifdef SHOPT_BGX
|
||||
if(pw->p_flag&P_BG)
|
||||
return(pw);
|
||||
|
|
Loading…
Reference in a new issue