Merge pull request #219 from czurnieden/bn_ilogb

Resolving problems mentioned in #218
This commit is contained in:
Steffen Jaeckel 2019-04-18 09:23:43 +02:00 committed by GitHub
commit 6eae00c82a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -90,7 +90,9 @@ int mp_ilogb(mp_int *a, mp_digit base, mp_int *c)
}
if (base == 2u) {
cmp = mp_count_bits(a) - 1;
mp_set_int(c, (unsigned long)cmp);
if ((err = mp_set_int(c, (unsigned long)cmp)) != MP_OKAY) {
goto LBL_ERR;
}
return err;
}
if (a->used == 1) {
@ -163,15 +165,21 @@ int mp_ilogb(mp_int *a, mp_digit base, mp_int *c)
mp_exch(&bracket_mid, &bracket_low);
}
if (cmp == MP_EQ) {
mp_set_int(c, (unsigned long)mid);
if ((err = mp_set_int(c, (unsigned long)mid)) != MP_OKAY) {
goto LBL_ERR;
}
goto LBL_END;
}
}
if (mp_cmp(&bracket_high, a) == MP_EQ) {
mp_set_int(c, (unsigned long)high);
if ((err = mp_set_int(c, (unsigned long)high)) != MP_OKAY) {
goto LBL_ERR;
}
} else {
mp_set_int(c, (unsigned long)low);
if ((err = mp_set_int(c, (unsigned long)low)) != MP_OKAY) {
goto LBL_ERR;
}
}
LBL_END: