chiark
/
gitweb
/
~mdw
/
tripe
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0dba5cb
)
server/privsep.c: Bring SIGCHLD handler in-line.
author
Mark Wooding
<mdw@distorted.org.uk>
Tue, 13 Mar 2012 02:30:57 +0000
(
02:30
+0000)
committer
Mark Wooding
<mdw@distorted.org.uk>
Tue, 13 Mar 2012 02:34:25 +0000
(
02:34
+0000)
server/privsep.c
patch
|
blob
|
blame
|
history
diff --git
a/server/privsep.c
b/server/privsep.c
index bbd4814ae6fbe72e1c947f79744575f6835b6b06..d7063b63809eeb253c51db262757c7f5262dfc50 100644
(file)
--- a/
server/privsep.c
+++ b/
server/privsep.c
@@
-32,6
+32,7
@@
/*----- Static variables --------------------------------------------------*/
static pid_t kid = -1;
/*----- Static variables --------------------------------------------------*/
static pid_t kid = -1;
+static sig sig_chld;
/*----- Fetching a tunnel file descriptor ---------------------------------*/
/*----- Fetching a tunnel file descriptor ---------------------------------*/
@@
-128,7
+129,7
@@
lose:
* Use: Notices and reports child process death.
*/
* Use: Notices and reports child process death.
*/
-static void reap(int sig)
+static void reap(int sig
, void *p
)
{
pid_t k;
int st;
{
pid_t k;
int st;
@@
-185,7
+186,7
@@
void ps_split(int detachp)
if (!helper) helper = PRIVSEP_HELPER;
fdflags(fd[0], 0, 0, FD_CLOEXEC, FD_CLOEXEC);
fdflags(fd[1], 0, 0, FD_CLOEXEC, FD_CLOEXEC);
if (!helper) helper = PRIVSEP_HELPER;
fdflags(fd[0], 0, 0, FD_CLOEXEC, FD_CLOEXEC);
fdflags(fd[1], 0, 0, FD_CLOEXEC, FD_CLOEXEC);
- sig
nal(SIGCHLD, reap
);
+ sig
_add(&sig_chld, SIGCHLD, reap, 0
);
kid = fork();
if (kid == 0) {
signal(SIGCHLD, SIG_DFL);
kid = fork();
if (kid == 0) {
signal(SIGCHLD, SIG_DFL);