]> andersk Git - openssh.git/commitdiff
- djm@cvs.openbsd.org 2005/10/30 04:01:03
authordjm <djm>
Sat, 5 Nov 2005 04:12:28 +0000 (04:12 +0000)
committerdjm <djm>
Sat, 5 Nov 2005 04:12:28 +0000 (04:12 +0000)
     [ssh-keyscan.c]
     make ssh-keygen discard junk from server before SSH- ident, spotted by
     dave AT cirt.net; ok dtucker@

ChangeLog
ssh-keyscan.c

index 8c37ee3a7ce94756ac60922d674461faf65193ad..05a09a762fff73ad2e0d4aa97afd5e83ee6ff83c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
      [ssh_config.5]
      mention control socket fallback behaviour, reported by 
      tryponraj AT gmail.com
+   - djm@cvs.openbsd.org 2005/10/30 04:01:03
+     [ssh-keyscan.c]
+     make ssh-keygen discard junk from server before SSH- ident, spotted by
+     dave AT cirt.net; ok dtucker@
 
 20051102
  - (dtucker) [openbsd-compat/bsd-misc.c] Bug #1108: fix broken strdup().
index 8ac97bd356995d0f80e32780de131672ea73e5da..6915102ddf3ba7f7665edf96141962db18857f30 100644 (file)
@@ -7,7 +7,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: ssh-keyscan.c,v 1.56 2005/09/13 23:40:07 djm Exp $");
+RCSID("$OpenBSD: ssh-keyscan.c,v 1.57 2005/10/30 04:01:03 djm Exp $");
 
 #include "openbsd-compat/sys-queue.h"
 
@@ -499,12 +499,18 @@ congreet(int s)
        size_t bufsiz;
        con *c = &fdcon[s];
 
-       bufsiz = sizeof(buf);
-       cp = buf;
-       while (bufsiz-- && (n = atomicio(read, s, cp, 1)) == 1 && *cp != '\n') {
-               if (*cp == '\r')
-                       *cp = '\n';
-               cp++;
+       for (;;) {
+               memset(buf, '\0', sizeof(buf));
+               bufsiz = sizeof(buf);
+               cp = buf;
+               while (bufsiz-- &&
+                   (n = atomicio(read, s, cp, 1)) == 1 && *cp != '\n') {
+                       if (*cp == '\r')
+                               *cp = '\n';
+                       cp++;
+               }
+               if (n != 1 || strncmp(buf, "SSH-", 4) == 0)
+                       break;
        }
        if (n == 0) {
                switch (errno) {
This page took 0.051168 seconds and 5 git commands to generate.