mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 02:37:28 +02:00
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 {
|
else {
|
||||||
int i;
|
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->dp[i] = (sp_int_digit)n;
|
||||||
}
|
}
|
||||||
a->used = i;
|
a->used = i;
|
||||||
|
if ((i == a->size) && (n != 0)) {
|
||||||
|
err = MP_VAL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef WOLFSSL_SP_INT_NEGATIVE
|
#ifdef WOLFSSL_SP_INT_NEGATIVE
|
||||||
|
Reference in New Issue
Block a user