summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordtucker <dtucker>2007-12-02 12:02:15 +0000
committerdtucker <dtucker>2007-12-02 12:02:15 +0000
commit94dc18896f2c00edaf72ea1940a7e480ad665746 (patch)
tree9728236f68ce72b0ed42af4f647b5d61af906f5c
parent107a9e30b7de6bf277b504b6f6c687bce4cba6f7 (diff)
downloadopenssh-94dc18896f2c00edaf72ea1940a7e480ad665746.tar.gz
- 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@
-rw-r--r--ChangeLog7
-rw-r--r--monitor.c6
-rw-r--r--monitor_wrap.c7
3 files changed, 13 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index aff32e50..31ffeaec 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,11 @@
[ssh.c]
Plug tiny mem leaks in ControlPath and ProxyCommand option processing;
ok djm@
+ - 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@
20071030
- (djm) OpenBSD CVS Sync
@@ -3429,4 +3434,4 @@
OpenServer 6 and add osr5bigcrypt support so when someone migrates
passwords between UnixWare and OpenServer they will still work. OK dtucker@
-$Id: ChangeLog,v 1.4798 2007/12/02 12:01:03 dtucker Exp $
+$Id: ChangeLog,v 1.4799 2007/12/02 12:02:15 dtucker Exp $
diff --git a/monitor.c b/monitor.c
index 7996d5a1..2f23669c 100644
--- a/monitor.c
+++ b/monitor.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: monitor.c,v 1.93 2007/09/21 08:15:29 djm Exp $ */
+/* $OpenBSD: monitor.c,v 1.94 2007/10/29 04:08:08 dtucker Exp $ */
/*
* Copyright 2002 Niels Provos <provos@citi.umich.edu>
* Copyright 2002 Markus Friedl <markus@openbsd.org>
@@ -643,11 +643,11 @@ mm_answer_pwnamallow(int sock, Buffer *m)
#endif
buffer_put_cstring(m, pwent->pw_dir);
buffer_put_cstring(m, pwent->pw_shell);
+
+ out:
buffer_put_string(m, &options, sizeof(options));
if (options.banner != NULL)
buffer_put_cstring(m, options.banner);
-
- out:
debug3("%s: sending MONITOR_ANS_PWNAM: %d", __func__, allowed);
mm_request_send(sock, MONITOR_ANS_PWNAM, m);
diff --git a/monitor_wrap.c b/monitor_wrap.c
index 7ac84529..e895f192 100644
--- a/monitor_wrap.c
+++ b/monitor_wrap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: monitor_wrap.c,v 1.59 2007/09/21 08:15:29 djm Exp $ */
+/* $OpenBSD: monitor_wrap.c,v 1.60 2007/10/29 04:08:08 dtucker Exp $ */
/*
* Copyright 2002 Niels Provos <provos@citi.umich.edu>
* Copyright 2002 Markus Friedl <markus@openbsd.org>
@@ -222,8 +222,8 @@ mm_getpwnamallow(const char *username)
mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_PWNAM, &m);
if (buffer_get_char(&m) == 0) {
- buffer_free(&m);
- return (NULL);
+ pw = NULL;
+ goto out;
}
pw = buffer_get_string(&m, &len);
if (len != sizeof(struct passwd))
@@ -237,6 +237,7 @@ mm_getpwnamallow(const char *username)
pw->pw_dir = buffer_get_string(&m, NULL);
pw->pw_shell = buffer_get_string(&m, NULL);
+out:
/* copy options block as a Match directive may have changed some */
newopts = buffer_get_string(&m, &len);
if (len != sizeof(*newopts))