diff options
author | Darren Tucker <dtucker@zip.com.au> | 2007-12-02 23:02:15 +1100 |
---|---|---|
committer | Darren Tucker <dtucker@zip.com.au> | 2007-12-02 23:02:15 +1100 |
commit | 2f8b3d9855be2cd6a43d32d7b1799ca415f19f1c (patch) | |
tree | 0e0153f8bc9d4990c5fb8e8ab457b166a5aba8b1 /monitor_wrap.c | |
parent | 32e42c74a54ba10bf6859f83b52e5b5e7d3c796a (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.c | 7 |
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 | ||
240 | out: | ||
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)) |