Mercurial > repo > gmp-6.2
changeset 18135:561a9c25298e
mpz/inp_raw.c: Avoid bit size overflows
| author | Marco Bodrato <bodrato@mail.dm.unipi.it> |
|---|---|
| date | Thu, 21 Oct 2021 19:06:49 +0200 |
| parents | e1fd9db13b47 |
| children | 402b9c4efacb |
| files | mpz/inp_raw.c |
| diffstat | 1 files changed, 4 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mpz/inp_raw.c Tue Dec 22 23:49:51 2020 +0100 +++ b/mpz/inp_raw.c Thu Oct 21 19:06:49 2021 +0200 @@ -88,8 +88,11 @@ abs_csize = ABS (csize); + if (UNLIKELY (abs_csize > ~(mp_bitcnt_t) 0 / 8)) + return 0; /* Bit size overflows */ + /* round up to a multiple of limbs */ - abs_xsize = BITS_TO_LIMBS (abs_csize*8); + abs_xsize = BITS_TO_LIMBS ((mp_bitcnt_t) abs_csize * 8); if (abs_xsize != 0) {
