Make sure we're not using an uninitialized variable in secp256k1_wnaf_const(...)
This commit is contained in:
parent
452d8e4d2a
commit
248f046611
|
@ -61,6 +61,10 @@ static int secp256k1_wnaf_const(int *wnaf, secp256k1_scalar s, int w, int size)
|
||||||
int bit;
|
int bit;
|
||||||
secp256k1_scalar neg_s;
|
secp256k1_scalar neg_s;
|
||||||
int not_neg_one;
|
int not_neg_one;
|
||||||
|
|
||||||
|
VERIFY_CHECK(w > 0);
|
||||||
|
VERIFY_CHECK(size > 0);
|
||||||
|
|
||||||
/* Note that we cannot handle even numbers by negating them to be odd, as is
|
/* Note that we cannot handle even numbers by negating them to be odd, as is
|
||||||
* done in other implementations, since if our scalars were specified to have
|
* done in other implementations, since if our scalars were specified to have
|
||||||
* width < 256 for performance reasons, their negations would have width 256
|
* width < 256 for performance reasons, their negations would have width 256
|
||||||
|
@ -93,7 +97,7 @@ static int secp256k1_wnaf_const(int *wnaf, secp256k1_scalar s, int w, int size)
|
||||||
|
|
||||||
/* 4 */
|
/* 4 */
|
||||||
u_last = secp256k1_scalar_shr_int(&s, w);
|
u_last = secp256k1_scalar_shr_int(&s, w);
|
||||||
while (word * w < size) {
|
do {
|
||||||
int sign;
|
int sign;
|
||||||
int even;
|
int even;
|
||||||
|
|
||||||
|
@ -109,7 +113,7 @@ static int secp256k1_wnaf_const(int *wnaf, secp256k1_scalar s, int w, int size)
|
||||||
wnaf[word++] = u_last * global_sign;
|
wnaf[word++] = u_last * global_sign;
|
||||||
|
|
||||||
u_last = u;
|
u_last = u;
|
||||||
}
|
} while (word * w < size);
|
||||||
wnaf[word] = u * global_sign;
|
wnaf[word] = u * global_sign;
|
||||||
|
|
||||||
VERIFY_CHECK(secp256k1_scalar_is_zero(&s));
|
VERIFY_CHECK(secp256k1_scalar_is_zero(&s));
|
||||||
|
|
Loading…
Reference in New Issue