diff options
author | 2005-04-28 10:17:56 +0000 | |
---|---|---|
committer | 2005-04-28 10:17:56 +0000 | |
commit | c1c00dd1419951b5725349a902553e13b612a374 (patch) | |
tree | 3e3a47142f9e210d57c454264835e5796af3fcd1 /usr.bin/ssh/ssh-keyscan.c | |
parent | more snprintf error checking. ok krw@ (diff) | |
download | wireguard-openbsd-c1c00dd1419951b5725349a902553e13b612a374.tar.xz wireguard-openbsd-c1c00dd1419951b5725349a902553e13b612a374.zip |
add snprintf checks. ok djm@ markus@
Diffstat (limited to 'usr.bin/ssh/ssh-keyscan.c')
-rw-r--r-- | usr.bin/ssh/ssh-keyscan.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/usr.bin/ssh/ssh-keyscan.c b/usr.bin/ssh/ssh-keyscan.c index b33d8637768..15dfb9c46e7 100644 --- a/usr.bin/ssh/ssh-keyscan.c +++ b/usr.bin/ssh/ssh-keyscan.c @@ -7,7 +7,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: ssh-keyscan.c,v 1.52 2005/03/01 15:47:14 jmc Exp $"); +RCSID("$OpenBSD: ssh-keyscan.c,v 1.53 2005/04/28 10:17:56 moritz Exp $"); #include <sys/queue.h> #include <errno.h> @@ -534,6 +534,11 @@ congreet(int s) n = snprintf(buf, sizeof buf, "SSH-%d.%d-OpenSSH-keyscan\r\n", c->c_keytype == KT_RSA1? PROTOCOL_MAJOR_1 : PROTOCOL_MAJOR_2, c->c_keytype == KT_RSA1? PROTOCOL_MINOR_1 : PROTOCOL_MINOR_2); + if (n == -1 || n >= sizeof buf) { + error("snprintf: buffer too small"); + confree(s); + return; + } if (atomicio(vwrite, s, buf, n) != n) { error("write (%s): %s", c->c_name, strerror(errno)); confree(s); |