summaryrefslogtreecommitdiff
path: root/dev-libs/gmp/files/gmp-6.2.1-CVE-2021-43618.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/gmp/files/gmp-6.2.1-CVE-2021-43618.patch')
-rw-r--r--dev-libs/gmp/files/gmp-6.2.1-CVE-2021-43618.patch17
1 files changed, 17 insertions, 0 deletions
diff --git a/dev-libs/gmp/files/gmp-6.2.1-CVE-2021-43618.patch b/dev-libs/gmp/files/gmp-6.2.1-CVE-2021-43618.patch
new file mode 100644
index 000000000000..90129ec5b2bd
--- /dev/null
+++ b/dev-libs/gmp/files/gmp-6.2.1-CVE-2021-43618.patch
@@ -0,0 +1,17 @@
+https://bugs.gentoo.org/823804
+https://gmplib.org/repo/gmp-6.2/rev/561a9c25298e
+--- a/mpz/inp_raw.c
++++ b/mpz/inp_raw.c
+@@ -88,8 +88,11 @@ mpz_inp_raw (mpz_ptr x, FILE *fp)
+
+ 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)
+ {