diff options
author | Damien Miller <djm@cvs.openbsd.org> | 2014-04-16 23:22:46 +0000 |
---|---|---|
committer | Damien Miller <djm@cvs.openbsd.org> | 2014-04-16 23:22:46 +0000 |
commit | 75b886c2f9ed1deb127e6eea756fa41db4651251 (patch) | |
tree | af7e59e011854306cf2acf876fc7e017f3fc0f6d /usr.bin/ssh/bufaux.c | |
parent | 65fd6d135d5458061b5259f68b3ef4566ce7e70e (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.c | 5 |
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 |