diff --git a/mp_unpack.c b/mp_unpack.c index f0127fa4..41e4cbde 100644 --- a/mp_unpack.c +++ b/mp_unpack.c @@ -13,6 +13,10 @@ mp_err mp_unpack(mp_int *rop, size_t count, mp_order order, size_t size, size_t odd_nails, nail_bytes, i, j; uint8_t odd_nail_mask; + if ((size == 0u) || (nails >= (size * 8u))) { + return MP_VAL; + } + mp_zero(rop); if (endian == MP_NATIVE_ENDIAN) {