src__cmd__ksh93__jobs.c.diff [plain text]
--- src/cmd/ksh93/sh/jobs.c~ 2007-07-03 19:27:28.000000000 -0700
+++ src/cmd/ksh93/sh/jobs.c 2007-07-03 19:28:02.000000000 -0700
@@ -36,7 +36,7 @@
#include "jobs.h"
#include "history.h"
-#if !defined(WCONTINUED) || !defined(WIFCONTINUED)
+#if !defined(WCONTINUED) || !defined(WIFCONTINUED) || defined(__APPLE__)
# undef WCONTINUED
# define WCONTINUED 0
# undef WIFCONTINUED
@@ -1440,7 +1443,7 @@ static struct process *job_unpost(regist
if(pw)
return(pw);
/* all processes complete, unpost job */
- job_unlink(pwtop);
+ if (pwtop) job_unlink(pwtop);
for(pw=pwtop; pw; pw=pw->p_nxtproc)
{
/* save the exit status for background jobs */
@@ -1469,7 +1472,7 @@ static struct process *job_unpost(regist
sfprintf(sfstderr,"ksh: job line %4d: free pid=%d critical=%d job=%d\n",__LINE__,getpid(),job.in_critical,pwtop->p_job);
sfsync(sfstderr);
#endif /* DEBUG */
- job_free((int)pwtop->p_job);
+ if (pwtop) job_free((int)pwtop->p_job);
return((struct process*)0);
}