aboutsummaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorTim J. Robbins <tjr@FreeBSD.org>2002-08-18 06:43:44 +0000
committerTim J. Robbins <tjr@FreeBSD.org>2002-08-18 06:43:44 +0000
commit4f8fa749f0c3befcee389fbdea4cbcb7f149d9f6 (patch)
tree01173b17f3d6e2cf7bc62250fdf4228b7f941f5e /bin
parente92a3d83fcba95f35d5f162df92f2d5b8351c2e3 (diff)
Notes
Diffstat (limited to 'bin')
-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 2fd7aaa4e7d6..ebf5ed8f900c 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);