From f9bf1dc5580b6065f8b69668440325564be79594 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Fri, 7 Dec 2007 10:33:58 +0000 Subject: Guillaume Chazarain: 24170: block interrupts around fork() --- ChangeLog | 5 +++++ Src/exec.c | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/ChangeLog b/ChangeLog index 862050ee0..87b322119 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-12-07 Peter Stephenson + + * Guillaume Chazarain: 24170: Src/exec.c: block interrupts + around fork since it may mess with locks. + 2007-12-07 Clint Adams * 24172 (tweaked): configure.ac: check ncurses.h, ncurses/ncurses.h, and diff --git a/Src/exec.c b/Src/exec.c index cf79ea88b..6f16b9e87 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -229,6 +229,7 @@ zfork(struct timeval *tv) { pid_t pid; struct timezone dummy_tz; + sigset_t signals; /* * Is anybody willing to explain this test? @@ -239,7 +240,10 @@ zfork(struct timeval *tv) } if (tv) gettimeofday(tv, &dummy_tz); + sigfillset(&signals); + signals = signal_block(signals); pid = fork(); + signal_setmask(signals); if (pid == -1) { zerr("fork failed: %e", errno); return -1; -- cgit 1.4.1