diff options
author | Damien Miller <djm@mindrot.org> | 2005-05-26 12:07:32 +1000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2005-05-26 12:07:32 +1000 |
commit | 41bfc29ea5416ea0a389635291bcf388d4bdc225 (patch) | |
tree | 85eef9ee1416ca8dea07815847d77197038f212c /ssh-keyscan.c | |
parent | dadfd4dd3862df5cebae2f2dc9b7f112321fa85e (diff) |
- moritz@cvs.openbsd.org 2005/04/28 10:17:56
[progressmeter.c ssh-keyscan.c]
add snprintf checks. ok djm@ markus@
Diffstat (limited to 'ssh-keyscan.c')
-rw-r--r-- | ssh-keyscan.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/ssh-keyscan.c b/ssh-keyscan.c index bc2c3b728..fdcfc5b3c 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.52 2005/03/01 15:47:14 jmc Exp $"); | 10 | RCSID("$OpenBSD: ssh-keyscan.c,v 1.53 2005/04/28 10:17:56 moritz Exp $"); |
11 | 11 | ||
12 | #include "openbsd-compat/sys-queue.h" | 12 | #include "openbsd-compat/sys-queue.h" |
13 | 13 | ||
@@ -543,6 +543,11 @@ congreet(int s) | |||
543 | n = snprintf(buf, sizeof buf, "SSH-%d.%d-OpenSSH-keyscan\r\n", | 543 | n = snprintf(buf, sizeof buf, "SSH-%d.%d-OpenSSH-keyscan\r\n", |
544 | c->c_keytype == KT_RSA1? PROTOCOL_MAJOR_1 : PROTOCOL_MAJOR_2, | 544 | c->c_keytype == KT_RSA1? PROTOCOL_MAJOR_1 : PROTOCOL_MAJOR_2, |
545 | c->c_keytype == KT_RSA1? PROTOCOL_MINOR_1 : PROTOCOL_MINOR_2); | 545 | c->c_keytype == KT_RSA1? PROTOCOL_MINOR_1 : PROTOCOL_MINOR_2); |
546 | if (n == -1 || n >= sizeof buf) { | ||
547 | error("snprintf: buffer too small"); | ||
548 | confree(s); | ||
549 | return; | ||
550 | } | ||
546 | if (atomicio(vwrite, s, buf, n) != n) { | 551 | if (atomicio(vwrite, s, buf, n) != n) { |
547 | error("write (%s): %s", c->c_name, strerror(errno)); | 552 | error("write (%s): %s", c->c_name, strerror(errno)); |
548 | confree(s); | 553 | confree(s); |