summaryrefslogtreecommitdiffstats
path: root/usr.bin/ssh/monitor.c
diff options
context:
space:
mode:
authormarkus <markus@openbsd.org>2002-03-30 18:51:15 +0000
committermarkus <markus@openbsd.org>2002-03-30 18:51:15 +0000
commitd16f19a93e36c7bfdc110ac4610d165f1a74de66 (patch)
tree0fd94b045ace9ce27a3a8f09d8f8fe82b4a33bcf /usr.bin/ssh/monitor.c
parentimplement WEP in wi_do_hostencrypt() (diff)
downloadwireguard-openbsd-d16f19a93e36c7bfdc110ac4610d165f1a74de66.tar.xz
wireguard-openbsd-d16f19a93e36c7bfdc110ac4610d165f1a74de66.zip
check waitpid for EINTR; based on patch from peter@ifm.liu.se
Diffstat (limited to 'usr.bin/ssh/monitor.c')
-rw-r--r--usr.bin/ssh/monitor.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/usr.bin/ssh/monitor.c b/usr.bin/ssh/monitor.c
index 737209daf36..417e6bf0ce2 100644
--- a/usr.bin/ssh/monitor.c
+++ b/usr.bin/ssh/monitor.c
@@ -25,7 +25,7 @@
*/
#include "includes.h"
-RCSID("$OpenBSD: monitor.c,v 1.8 2002/03/27 17:45:42 mouring Exp $");
+RCSID("$OpenBSD: monitor.c,v 1.9 2002/03/30 18:51:15 markus Exp $");
#include <openssl/dh.h>
@@ -1203,8 +1203,9 @@ mm_answer_term(int socket, Buffer *req)
/* The child is terminating */
session_destroy_all(&mm_session_close);
- if (waitpid(monitor->m_pid, &status, 0) == -1)
- exit(1);
+ while (waitpid(monitor->m_pid, &status, 0) == -1)
+ if (errno != EINTR)
+ exit(1);
res = WIFEXITED(status) ? WEXITSTATUS(status) : 1;