1*4882a593Smuzhiyun# HG changeset patch 2*4882a593Smuzhiyun# User Marco Bodrato <bodrato@mail.dm.unipi.it> 3*4882a593Smuzhiyun# Date 1634836009 -7200 4*4882a593Smuzhiyun# Node ID 561a9c25298e17bb01896801ff353546c6923dbd 5*4882a593Smuzhiyun# Parent e1fd9db13b475209a864577237ea4b9105b3e96e 6*4882a593Smuzhiyunmpz/inp_raw.c: Avoid bit size overflows 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun[Retrieved from: https://gmplib.org/repo/gmp-6.2/rev/561a9c25298e] 9*4882a593SmuzhiyunSigned-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 10*4882a593Smuzhiyun 11*4882a593Smuzhiyundiff -r e1fd9db13b47 -r 561a9c25298e mpz/inp_raw.c 12*4882a593Smuzhiyun--- a/mpz/inp_raw.c Tue Dec 22 23:49:51 2020 +0100 13*4882a593Smuzhiyun+++ b/mpz/inp_raw.c Thu Oct 21 19:06:49 2021 +0200 14*4882a593Smuzhiyun@@ -88,8 +88,11 @@ 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun abs_csize = ABS (csize); 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun+ if (UNLIKELY (abs_csize > ~(mp_bitcnt_t) 0 / 8)) 19*4882a593Smuzhiyun+ return 0; /* Bit size overflows */ 20*4882a593Smuzhiyun+ 21*4882a593Smuzhiyun /* round up to a multiple of limbs */ 22*4882a593Smuzhiyun- abs_xsize = BITS_TO_LIMBS (abs_csize*8); 23*4882a593Smuzhiyun+ abs_xsize = BITS_TO_LIMBS ((mp_bitcnt_t) abs_csize * 8); 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun if (abs_xsize != 0) 26*4882a593Smuzhiyun { 27*4882a593Smuzhiyun 28