Commit 6eae00c82a0a2eaed8c2e3d9fcc0af52db97fbb6

Steffen Jaeckel 2019-04-18T09:23:43

Merge pull request #219 from czurnieden/bn_ilogb Resolving problems mentioned in #218

diff --git a/bn_mp_ilogb.c b/bn_mp_ilogb.c
index d1ff4e9..9c32c5b 100644
--- a/bn_mp_ilogb.c
+++ b/bn_mp_ilogb.c
@@ -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: