summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bin/sh/jobs.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/bin/sh/jobs.c b/bin/sh/jobs.c
index 2fd7aaa..ebf5ed8 100644
--- a/bin/sh/jobs.c
+++ b/bin/sh/jobs.c
@@ -741,9 +741,6 @@ forkshell(struct job *jp, union node *n, int mode)
TRACE(("Child shell %d\n", (int)getpid()));
wasroot = rootshell;
rootshell = 0;
- for (i = njobs, p = jobtab ; --i >= 0 ; p++)
- if (p->used)
- freejob(p);
closescript();
INTON;
clear_traps();
@@ -785,6 +782,11 @@ forkshell(struct job *jp, union node *n, int mode)
}
}
#endif
+ INTOFF;
+ for (i = njobs, p = jobtab ; --i >= 0 ; p++)
+ if (p->used)
+ freejob(p);
+ INTON;
if (wasroot && iflag) {
setsignal(SIGINT);
setsignal(SIGQUIT);
OpenPOWER on IntegriCloud