From 6b28c35a04069c5b19e541c86e767da5841422d0 Mon Sep 17 00:00:00 2001 From: Ben Lindstrom Date: Tue, 5 Mar 2002 01:54:52 +0000 Subject: [PATCH] - 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@ --- ChangeLog | 6 +++++- ssh-keyscan.c | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 84d76a039..d8dc035bb 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 88f10ebec..824264c32 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 @@ -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);