X-Git-Url: https://git.distorted.org.uk/~mdw/secnet/blobdiff_plain/5a8a70536e4fa79612405a88c50743976abb2d50..51abbe5f68f3c784987bc5f5d9575c967ec5895d:/process.c diff --git a/process.c b/process.c index 0a7a0f2..0a718e2 100644 --- a/process.c +++ b/process.c @@ -152,7 +152,7 @@ int sys_cmd(const char *path, const char *arg, ...) path, arg, WTERMSIG(rv), strsignal(WTERMSIG(rv)), WCOREDUMP(rv) ? " - core dumped" : ""); else - Message(M_ERR, "sys_cmd(%s,%s,...) exited with wstat %#x", + Message(M_ERR, "sys_cmd(%s,%s,...) exited with wstat %#x\n", path, arg, rv); } } else if (c==0) { @@ -183,11 +183,7 @@ static beforepoll_fn signal_beforepoll; static int signal_beforepoll(void *st, struct pollfd *fds, int *nfds_io, int *timeout_io) { - if (*nfds_io<1) { - *nfds_io=1; - return ERANGE; - } - *nfds_io=1; + BEFOREPOLL_WANT_FDS(1); fds[0].fd=spr; fds[0].events=POLLIN; return 0; @@ -310,16 +306,14 @@ void start_signal_handling(void) sigemptyset(®istered); sigemptyset(&pending); - if (pipe(p)!=0) { - fatal_perror("start_signal_handling: pipe"); - } + pipe_cloexec(p); spw=p[1]; spr=p[0]; if (fcntl(spw, F_SETFL, fcntl(spw, F_GETFL)|O_NONBLOCK)==-1) { fatal_perror("start_signal_handling: fcntl(O_NONBLOCK)"); } - register_for_poll(NULL,signal_beforepoll,signal_afterpoll,1,"signal"); + register_for_poll(NULL,signal_beforepoll,signal_afterpoll,"signal"); signal_handling=True; /* Register signal handlers for all the signals we're interested in */