diff options
author | Colin Watson <cjwatson@debian.org> | 2006-05-12 08:53:37 +0000 |
---|---|---|
committer | Colin Watson <cjwatson@debian.org> | 2006-05-12 08:53:37 +0000 |
commit | 2ee73b36b9a35daeaa4b065046882dc1f5f551b6 (patch) | |
tree | f64a4ace625514e94759878c0b94ab0a79805bbd /ssh-keyscan.c | |
parent | 3c190ec8e469477ea65fbf4cc83062c65c281434 (diff) | |
parent | 3e2e0ac10674d77618c4c7339e18b83ced247492 (diff) |
Merge 4.3p2 to the trunk.
Diffstat (limited to 'ssh-keyscan.c')
-rw-r--r-- | ssh-keyscan.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/ssh-keyscan.c b/ssh-keyscan.c index 64eecfb9a..f429c2c02 100644 --- a/ssh-keyscan.c +++ b/ssh-keyscan.c | |||
@@ -7,7 +7,7 @@ | |||
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include "includes.h" | 9 | #include "includes.h" |
10 | RCSID("$OpenBSD: ssh-keyscan.c,v 1.55 2005/06/17 02:44:33 djm Exp $"); | 10 | RCSID("$OpenBSD: ssh-keyscan.c,v 1.57 2005/10/30 04:01:03 djm Exp $"); |
11 | 11 | ||
12 | #include "openbsd-compat/sys-queue.h" | 12 | #include "openbsd-compat/sys-queue.h" |
13 | 13 | ||
@@ -499,12 +499,18 @@ congreet(int s) | |||
499 | size_t bufsiz; | 499 | size_t bufsiz; |
500 | con *c = &fdcon[s]; | 500 | con *c = &fdcon[s]; |
501 | 501 | ||
502 | bufsiz = sizeof(buf); | 502 | for (;;) { |
503 | cp = buf; | 503 | memset(buf, '\0', sizeof(buf)); |
504 | while (bufsiz-- && (n = atomicio(read, s, cp, 1)) == 1 && *cp != '\n') { | 504 | bufsiz = sizeof(buf); |
505 | if (*cp == '\r') | 505 | cp = buf; |
506 | *cp = '\n'; | 506 | while (bufsiz-- && |
507 | cp++; | 507 | (n = atomicio(read, s, cp, 1)) == 1 && *cp != '\n') { |
508 | if (*cp == '\r') | ||
509 | *cp = '\n'; | ||
510 | cp++; | ||
511 | } | ||
512 | if (n != 1 || strncmp(buf, "SSH-", 4) == 0) | ||
513 | break; | ||
508 | } | 514 | } |
509 | if (n == 0) { | 515 | if (n == 0) { |
510 | switch (errno) { | 516 | switch (errno) { |
@@ -712,6 +718,9 @@ main(int argc, char **argv) | |||
712 | seed_rng(); | 718 | seed_rng(); |
713 | TAILQ_INIT(&tq); | 719 | TAILQ_INIT(&tq); |
714 | 720 | ||
721 | /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ | ||
722 | sanitise_stdfd(); | ||
723 | |||
715 | if (argc <= 1) | 724 | if (argc <= 1) |
716 | usage(); | 725 | usage(); |
717 | 726 | ||