From 0e7599e756e6c720070f0dbe345bd3a17274fe14 Mon Sep 17 00:00:00 2001 From: Daniel Green Date: Tue, 2 Jul 2019 21:32:57 +0100 Subject: [PATCH] Throw if MVM_is_prime called with too many rounds Valid range is 0..PRIME_SIZE (defined in libtommath). --- src/math/bigintops.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/math/bigintops.c b/src/math/bigintops.c index b1e1e43531..10db4e90f9 100644 --- a/src/math/bigintops.c +++ b/src/math/bigintops.c @@ -1203,8 +1203,10 @@ MVMint64 MVM_bigint_is_prime(MVMThreadContext *tc, MVMObject *a, MVMint64 b) { return 0; } else { - int result; - mp_prime_is_prime(ia, b, &result); + int result, err; + err = mp_prime_is_prime(ia, b, &result); + if (err != MP_OKAY) + MVM_exception_throw_adhoc(tc, "Invalid number of rounds (%ld), valid range is 0..%d\n", b, PRIME_SIZE); return result; } } else {