forked from wolfSSL/wolfssl
SP int: mp_init_size fixes when SP_WORD_SIZE == 8
Setting an integer may have a value larger than one word being set. Check size of SP int in this case.
This commit is contained in:
@ -5181,10 +5181,13 @@ int sp_set_int(sp_int* a, unsigned long n)
|
||||
else {
|
||||
int i;
|
||||
|
||||
for (i = 0; n > 0; i++,n >>= SP_WORD_SIZE) {
|
||||
for (i = 0; (i < a->size) && (n > 0); i++,n >>= SP_WORD_SIZE) {
|
||||
a->dp[i] = (sp_int_digit)n;
|
||||
}
|
||||
a->used = i;
|
||||
if ((i == a->size) && (n != 0)) {
|
||||
err = MP_VAL;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#ifdef WOLFSSL_SP_INT_NEGATIVE
|
||||
|
Reference in New Issue
Block a user