diff options
Diffstat (limited to 'common-session.c')
-rw-r--r-- | common-session.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/common-session.c b/common-session.c index fc0f9a0..7531563 100644 --- a/common-session.c +++ b/common-session.c @@ -370,8 +370,11 @@ static void read_session_identification() { int len = 0; char done = 0; int i; - /* If they send more than 50 lines, something is wrong */ - for (i = 0; i < 50; i++) { + + /* Servers may send other lines of data before sending the + * version string, client must be able to process such lines. + * If they send more than 50 lines, something is wrong */ + for (i = IS_DROPBEAR_CLIENT ? 50 : 1; i > 0; i--) { len = ident_readln(ses.sock_in, linebuf, sizeof(linebuf)); if (len < 0 && errno != EINTR) { |