summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Lindstrom <mouring@eviladmin.org>2002-03-05 01:54:52 +0000
committerBen Lindstrom <mouring@eviladmin.org>2002-03-05 01:54:52 +0000
commit6b28c35a04069c5b19e541c86e767da5841422d0 (patch)
tree1f7ea997412ee0719d00a76525b8d5b072358f1a
parent05764b9286940cacd16c3fc585ea082c2ace5ec2 (diff)
- stevesk@cvs.openbsd.org 2002/03/04 18:30:23
[ssh-keyscan.c] handle connection close during read of protocol version string. fixes erroneous "bad greeting". ok markus@
-rw-r--r--ChangeLog6
-rw-r--r--ssh-keyscan.c7
2 files changed, 11 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 84d76a03..d8dc035b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -54,6 +54,10 @@
$OpenBSD$ and RCSID() cleanup: don't use RCSID() in .h files; add
missing RCSID() to .c files and remove dup /*$OpenBSD$*/ from .c
files. ok markus@
+ - stevesk@cvs.openbsd.org 2002/03/04 18:30:23
+ [ssh-keyscan.c]
+ handle connection close during read of protocol version string.
+ fixes erroneous "bad greeting". ok markus@
20020226
- (tim) Bug 12 [configure.ac] add sys/bitypes.h to int64_t tests
@@ -7785,4 +7789,4 @@
- Wrote replacements for strlcpy and mkdtemp
- Released 1.0pre1
-$Id: ChangeLog,v 1.1904 2002/03/05 01:53:02 mouring Exp $
+$Id: ChangeLog,v 1.1905 2002/03/05 01:54:52 mouring Exp $
diff --git a/ssh-keyscan.c b/ssh-keyscan.c
index 88f10ebe..824264c3 100644
--- a/ssh-keyscan.c
+++ b/ssh-keyscan.c
@@ -7,7 +7,7 @@
*/
#include "includes.h"
-RCSID("$OpenBSD: ssh-keyscan.c,v 1.34 2002/02/22 12:20:34 markus Exp $");
+RCSID("$OpenBSD: ssh-keyscan.c,v 1.35 2002/03/04 18:30:23 stevesk Exp $");
#if defined(HAVE_SYS_QUEUE_H) && !defined(HAVE_BOGUS_SYS_QUEUE_H)
#include <sys/queue.h>
@@ -511,6 +511,11 @@ congreet(int s)
conrecycle(s);
return;
}
+ if (n == 0) {
+ error("%s: Connection closed by remote host", c->c_name);
+ conrecycle(s);
+ return;
+ }
if (*cp != '\n' && *cp != '\r') {
error("%s: bad greeting", c->c_name);
confree(s);