From 308e43e56aee98940d5e60f3da2cb5b0cf76b822 Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Mon, 15 Dec 2025 13:22:00 +0100 Subject: [PATCH] Fixes a UB on shifts during root refinement --- src/usolve/refine.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/usolve/refine.c b/src/usolve/refine.c index d07759bc..14e917a9 100644 --- a/src/usolve/refine.c +++ b/src/usolve/refine.c @@ -287,7 +287,7 @@ static void refine_root_by_N_positive_k(mpz_t *upol, unsigned long int *deg_ptr, mpz_set(*vala, *tmpvala); mpz_set(*valb, *tmpvalb); - int64_t maxindex = (1L<<(Nlog)); + int64_t maxindex = (Nlog >= 64) ? 1 : (INT64_C(1) << Nlog); if(index == -2 || index == 0 || (LOG2(index) > Nlog && index > 0) ){ if(Nlog == 2) index = 2;