From 6c99a185775a836148e7f6bb7a689477c77b3986 Mon Sep 17 00:00:00 2001 From: Marc Hoersken Date: Sun, 14 Jun 2020 19:36:32 +0200 Subject: [PATCH] wincng: add and improve checks in bit counting function --- src/wincng.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/wincng.c b/src/wincng.c index 1779a8d..04a4f81 100755 --- a/src/wincng.c +++ b/src/wincng.c @@ -2052,21 +2052,18 @@ _libssh2_wincng_bignum_bits(const _libssh2_bn *bn) unsigned char number; unsigned long offset, length, bits; - if(!bn) + if(!bn || !bn->bignum || !bn->length) return 0; - length = bn->length - 1; - offset = 0; - while(!(*(bn->bignum + offset)) && (offset < length)) + length = bn->length - 1; + while(!bn->bignum[offset] && offset < length) offset++; bits = (length - offset) * 8; number = bn->bignum[offset]; - while(number >>= 1) bits++; - bits++; return bits;