summaryrefslogtreecommitdiff
path: root/monitor_wrap.c
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2007-12-02 23:02:15 +1100
committerDarren Tucker <dtucker@zip.com.au>2007-12-02 23:02:15 +1100
commit2f8b3d9855be2cd6a43d32d7b1799ca415f19f1c (patch)
tree0e0153f8bc9d4990c5fb8e8ab457b166a5aba8b1 /monitor_wrap.c
parent32e42c74a54ba10bf6859f83b52e5b5e7d3c796a (diff)
- dtucker@cvs.openbsd.org 2007/10/29 04:08:08
[monitor_wrap.c monitor.c] Send config block back to slave for invalid users too so options set by a Match block (eg Banner) behave the same for non-existent users. Found by and ok djm@
Diffstat (limited to 'monitor_wrap.c')
-rw-r--r--monitor_wrap.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/monitor_wrap.c b/monitor_wrap.c
index 7ac845296..e895f1924 100644
--- a/monitor_wrap.c
+++ b/monitor_wrap.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: monitor_wrap.c,v 1.59 2007/09/21 08:15:29 djm Exp $ */ 1/* $OpenBSD: monitor_wrap.c,v 1.60 2007/10/29 04:08:08 dtucker Exp $ */
2/* 2/*
3 * Copyright 2002 Niels Provos <provos@citi.umich.edu> 3 * Copyright 2002 Niels Provos <provos@citi.umich.edu>
4 * Copyright 2002 Markus Friedl <markus@openbsd.org> 4 * Copyright 2002 Markus Friedl <markus@openbsd.org>
@@ -222,8 +222,8 @@ mm_getpwnamallow(const char *username)
222 mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_PWNAM, &m); 222 mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_PWNAM, &m);
223 223
224 if (buffer_get_char(&m) == 0) { 224 if (buffer_get_char(&m) == 0) {
225 buffer_free(&m); 225 pw = NULL;
226 return (NULL); 226 goto out;
227 } 227 }
228 pw = buffer_get_string(&m, &len); 228 pw = buffer_get_string(&m, &len);
229 if (len != sizeof(struct passwd)) 229 if (len != sizeof(struct passwd))
@@ -237,6 +237,7 @@ mm_getpwnamallow(const char *username)
237 pw->pw_dir = buffer_get_string(&m, NULL); 237 pw->pw_dir = buffer_get_string(&m, NULL);
238 pw->pw_shell = buffer_get_string(&m, NULL); 238 pw->pw_shell = buffer_get_string(&m, NULL);
239 239
240out:
240 /* copy options block as a Match directive may have changed some */ 241 /* copy options block as a Match directive may have changed some */
241 newopts = buffer_get_string(&m, &len); 242 newopts = buffer_get_string(&m, &len);
242 if (len != sizeof(*newopts)) 243 if (len != sizeof(*newopts))