- markus@cvs.openbsd.org 2003/10/11 11:36:23
     [monitor_wrap.c]
     return NULL for missing banner; ok djm@
diff --git a/ChangeLog b/ChangeLog
index 4eda171..f54616e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -19,6 +19,9 @@
    - markus@cvs.openbsd.org 2003/10/11 08:26:43
      [sshconnect2.c]
      search keys in reverse order; fixes #684
+   - markus@cvs.openbsd.org 2003/10/11 11:36:23
+     [monitor_wrap.c]
+     return NULL for missing banner; ok djm@
 
 20031009
  - (dtucker) [sshd_config.5] UsePAM defaults to "no".  ok djm@
@@ -1336,4 +1339,4 @@
  - Fix sshd BindAddress and -b options for systems using fake-getaddrinfo.
    Report from murple@murple.net, diagnosis from dtucker@zip.com.au
 
-$Id: ChangeLog,v 1.3073 2003/10/15 05:55:59 dtucker Exp $
+$Id: ChangeLog,v 1.3074 2003/10/15 05:56:58 dtucker Exp $
diff --git a/monitor_wrap.c b/monitor_wrap.c
index 99dfc85..e19984e 100644
--- a/monitor_wrap.c
+++ b/monitor_wrap.c
@@ -25,7 +25,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: monitor_wrap.c,v 1.32 2003/09/23 20:17:11 markus Exp $");
+RCSID("$OpenBSD: monitor_wrap.c,v 1.33 2003/10/11 11:36:23 markus Exp $");
 
 #include <openssl/bn.h>
 #include <openssl/dh.h>
@@ -224,7 +224,8 @@
 	return (pw);
 }
 
-char *mm_auth2_read_banner(void)
+char *
+mm_auth2_read_banner(void)
 {
 	Buffer m;
 	char *banner;
@@ -235,10 +236,16 @@
 	mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_AUTH2_READ_BANNER, &m);
 	buffer_clear(&m);
 
-	mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_AUTH2_READ_BANNER, &m);
+	mm_request_receive_expect(pmonitor->m_recvfd,
+	    MONITOR_ANS_AUTH2_READ_BANNER, &m);
 	banner = buffer_get_string(&m, NULL);
 	buffer_free(&m);
 
+	/* treat empty banner as missing banner */
+	if (strlen(banner) == 0) {
+		xfree(banner);
+		banner = NULL;
+	}
 	return (banner);
 }