summaryrefslogtreecommitdiff
path: root/usr.bin/ssh/bufaux.c
diff options
context:
space:
mode:
authorDamien Miller <djm@cvs.openbsd.org>2014-04-16 23:22:46 +0000
committerDamien Miller <djm@cvs.openbsd.org>2014-04-16 23:22:46 +0000
commit75b886c2f9ed1deb127e6eea756fa41db4651251 (patch)
treeaf7e59e011854306cf2acf876fc7e017f3fc0f6d /usr.bin/ssh/bufaux.c
parent65fd6d135d5458061b5259f68b3ef4566ce7e70e (diff)
skip leading zero bytes in buffer_put_bignum2_from_string();
reported by jan AT mojzis.com; ok markus@
Diffstat (limited to 'usr.bin/ssh/bufaux.c')
-rw-r--r--usr.bin/ssh/bufaux.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/usr.bin/ssh/bufaux.c b/usr.bin/ssh/bufaux.c
index 61ac9888881..b946b24bb7b 100644
--- a/usr.bin/ssh/bufaux.c
+++ b/usr.bin/ssh/bufaux.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: bufaux.c,v 1.56 2014/02/02 03:44:31 djm Exp $ */
+/* $OpenBSD: bufaux.c,v 1.57 2014/04/16 23:22:45 djm Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -370,6 +370,9 @@ buffer_put_bignum2_from_string(Buffer *buffer, const u_char *s, u_int l)
if (l > 8 * 1024)
fatal("%s: length %u too long", __func__, l);
+ /* Skip leading zero bytes */
+ for (; l > 0 && *s == 0; l--, s++)
+ ;
p = buf = xmalloc(l + 1);
/*
* If most significant bit is set then prepend a zero byte to