mirror of
				git://git.code.sf.net/p/cdesktopenv/code
				synced 2025-03-09 15:50:02 +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…
	
	Add table
		Add a link
		
	
		Reference in a new issue