summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2004-02-06 16:40:27 +1100
committerDarren Tucker <dtucker@zip.com.au>2004-02-06 16:40:27 +1100
commita8be9e23d236f0e9c27214418280b752b68dbd54 (patch)
treeed6e1074342c6a405a36349e1170779a735d5523
parentc52a29913d3850b4333000b3309cede03f8bf824 (diff)
- dtucker@cvs.openbsd.org 2004/02/05 05:37:17
[monitor.c sshd.c] Pass SIGALRM through to privsep child if LoginGraceTime expires. ok markus@
-rw-r--r--ChangeLog5
-rw-r--r--monitor.c3
-rw-r--r--sshd.c8
3 files changed, 12 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 518c51bfd..2e98126da 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -18,6 +18,9 @@
18 support for password change; ok dtucker@ 18 support for password change; ok dtucker@
19 (set password-dead=1w in login.conf to use this). 19 (set password-dead=1w in login.conf to use this).
20 In -Portable, this is currently only platforms using bsdauth. 20 In -Portable, this is currently only platforms using bsdauth.
21 - dtucker@cvs.openbsd.org 2004/02/05 05:37:17
22 [monitor.c sshd.c]
23 Pass SIGALRM through to privsep child if LoginGraceTime expires. ok markus@
21 24
2220040129 2520040129
23 - (dtucker) OpenBSD CVS Sync regress/ 26 - (dtucker) OpenBSD CVS Sync regress/
@@ -1803,4 +1806,4 @@
1803 - Fix sshd BindAddress and -b options for systems using fake-getaddrinfo. 1806 - Fix sshd BindAddress and -b options for systems using fake-getaddrinfo.
1804 Report from murple@murple.net, diagnosis from dtucker@zip.com.au 1807 Report from murple@murple.net, diagnosis from dtucker@zip.com.au
1805 1808
1806$Id: ChangeLog,v 1.3212 2004/02/06 05:24:31 dtucker Exp $ 1809$Id: ChangeLog,v 1.3213 2004/02/06 05:40:27 dtucker Exp $
diff --git a/monitor.c b/monitor.c
index 46e8d16e6..009dcf182 100644
--- a/monitor.c
+++ b/monitor.c
@@ -25,7 +25,7 @@
25 */ 25 */
26 26
27#include "includes.h" 27#include "includes.h"
28RCSID("$OpenBSD: monitor.c,v 1.54 2003/11/21 11:57:03 djm Exp $"); 28RCSID("$OpenBSD: monitor.c,v 1.55 2004/02/05 05:37:17 dtucker Exp $");
29 29
30#include <openssl/dh.h> 30#include <openssl/dh.h>
31 31
@@ -1708,6 +1708,7 @@ monitor_init(void)
1708 1708
1709 mon = xmalloc(sizeof(*mon)); 1709 mon = xmalloc(sizeof(*mon));
1710 1710
1711 mon->m_pid = 0;
1711 monitor_socketpair(pair); 1712 monitor_socketpair(pair);
1712 1713
1713 mon->m_recvfd = pair[0]; 1714 mon->m_recvfd = pair[0];
diff --git a/sshd.c b/sshd.c
index ebb44db75..42484c064 100644
--- a/sshd.c
+++ b/sshd.c
@@ -42,7 +42,7 @@
42 */ 42 */
43 43
44#include "includes.h" 44#include "includes.h"
45RCSID("$OpenBSD: sshd.c,v 1.284 2003/12/09 21:53:37 markus Exp $"); 45RCSID("$OpenBSD: sshd.c,v 1.285 2004/02/05 05:37:17 dtucker Exp $");
46 46
47#include <openssl/dh.h> 47#include <openssl/dh.h>
48#include <openssl/bn.h> 48#include <openssl/bn.h>
@@ -200,7 +200,7 @@ int startup_pipe; /* in child */
200 200
201/* variables used for privilege separation */ 201/* variables used for privilege separation */
202int use_privsep; 202int use_privsep;
203struct monitor *pmonitor; 203struct monitor *pmonitor = NULL;
204 204
205/* message to be displayed after login */ 205/* message to be displayed after login */
206Buffer loginmsg; 206Buffer loginmsg;
@@ -306,6 +306,9 @@ grace_alarm_handler(int sig)
306{ 306{
307 /* XXX no idea how fix this signal handler */ 307 /* XXX no idea how fix this signal handler */
308 308
309 if (use_privsep && pmonitor != NULL && pmonitor->m_pid > 0)
310 kill(pmonitor->m_pid, SIGALRM);
311
309 /* Log error and exit. */ 312 /* Log error and exit. */
310 fatal("Timeout before authentication for %s", get_remote_ipaddr()); 313 fatal("Timeout before authentication for %s", get_remote_ipaddr());
311} 314}
@@ -593,6 +596,7 @@ privsep_preauth(Authctxt *authctxt)
593 debug2("Network child is on pid %ld", (long)pid); 596 debug2("Network child is on pid %ld", (long)pid);
594 597
595 close(pmonitor->m_recvfd); 598 close(pmonitor->m_recvfd);
599 pmonitor->m_pid = pid;
596 monitor_child_preauth(authctxt, pmonitor); 600 monitor_child_preauth(authctxt, pmonitor);
597 close(pmonitor->m_sendfd); 601 close(pmonitor->m_sendfd);
598 602