diff options
author | 2012-12-11 22:16:21 +0000 | |
---|---|---|
committer | 2012-12-11 22:16:21 +0000 | |
commit | 5fcdafde610898e5e88b448d307bee080a6d6c08 (patch) | |
tree | c84f3f385f260d3c002757c86fa40ace913d8751 | |
parent | Add a SMART check using atactl(8) against disks that support and have (diff) | |
download | wireguard-openbsd-5fcdafde610898e5e88b448d307bee080a6d6c08.tar.xz wireguard-openbsd-5fcdafde610898e5e88b448d307bee080a6d6c08.zip |
drain the log messages after receiving the keystate from the unpriv
child. otherwise it might block while sending. ok djm@
-rw-r--r-- | usr.bin/ssh/monitor.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/usr.bin/ssh/monitor.c b/usr.bin/ssh/monitor.c index 628200e9bf2..46b5d74bc07 100644 --- a/usr.bin/ssh/monitor.c +++ b/usr.bin/ssh/monitor.c @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor.c,v 1.119 2012/12/02 20:34:10 djm Exp $ */ +/* $OpenBSD: monitor.c,v 1.120 2012/12/11 22:16:21 markus Exp $ */ /* * Copyright 2002 Niels Provos <provos@citi.umich.edu> * Copyright 2002 Markus Friedl <markus@openbsd.org> @@ -346,10 +346,6 @@ monitor_child_preauth(Authctxt *_authctxt, struct monitor *pmonitor) #endif } - /* Drain any buffered messages from the child */ - while (pmonitor->m_log_recvfd != -1 && monitor_read_log(pmonitor) == 0) - ; - if (!authctxt->valid) fatal("%s: authenticated invalid user", __func__); if (strcmp(auth_method, "unknown") == 0) @@ -360,6 +356,10 @@ monitor_child_preauth(Authctxt *_authctxt, struct monitor *pmonitor) mm_get_keystate(pmonitor); + /* Drain any buffered messages from the child */ + while (pmonitor->m_log_recvfd != -1 && monitor_read_log(pmonitor) == 0) + ; + close(pmonitor->m_sendfd); close(pmonitor->m_log_recvfd); pmonitor->m_sendfd = pmonitor->m_log_recvfd = -1; |