mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 02:37:28 +02:00
SP Math
sp_read_radix_10: check _sp_add_d doesn't error due to overflow _sp_add_d: Don't change value of used for result until it is known to be valid.
This commit is contained in:
@ -5219,11 +5219,13 @@ static int _sp_add_d(sp_int* a, sp_int_digit d, sp_int* r)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (i == a->used) {
|
if (i == a->used) {
|
||||||
r->used++;
|
if (i < r->size) {
|
||||||
if (i < r->size)
|
r->used++;
|
||||||
r->dp[i] = 1;
|
r->dp[i] = 1;
|
||||||
else
|
}
|
||||||
|
else {
|
||||||
err = MP_VAL;
|
err = MP_VAL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
@ -14889,7 +14891,10 @@ static int _sp_read_radix_10(sp_int* a, const char* in)
|
|||||||
if (err != MP_OKAY) {
|
if (err != MP_OKAY) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
(void)_sp_add_d(a, ch, a);
|
err = _sp_add_d(a, ch, a);
|
||||||
|
if (err != MP_OKAY) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#ifdef WOLFSSL_SP_INT_NEGATIVE
|
#ifdef WOLFSSL_SP_INT_NEGATIVE
|
||||||
if ((err == MP_OKAY) && sp_iszero(a)) {
|
if ((err == MP_OKAY) && sp_iszero(a)) {
|
||||||
|
Reference in New Issue
Block a user