Merge pull request #149488 from risicle/ris-gmp-CVE-2021-43618

gmp, gmp5: add patch for CVE-2021-43618
This commit is contained in:
Dmitry Kalinkin
2021-12-25 17:01:39 -05:00
committed by GitHub
4 changed files with 46 additions and 1 deletions
@@ -0,0 +1,20 @@
Based on https://gmplib.org/repo/gmp-6.2/raw-rev/561a9c25298e,
adapted for 5.x by ris
diff -r e1fd9db13b47 -r 561a9c25298e mpz/inp_raw.c
--- 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
@@ -81,8 +81,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 = (abs_csize*8 + GMP_NUMB_BITS-1) / GMP_NUMB_BITS;
+ abs_xsize = ((mp_bitcnt_t)abs_csize*8 + GMP_NUMB_BITS-1) / GMP_NUMB_BITS;
if (abs_xsize != 0)
{
+5 -1
View File
@@ -22,7 +22,11 @@ let self = stdenv.mkDerivation rec {
nativeBuildInputs = [ m4 ];
patches = if stdenv.isDarwin then [ ./need-size-t.patch ] else null;
patches = [
./5.1.3-CVE-2021-43618.patch
] ++ lib.optionals stdenv.isDarwin [
./need-size-t.patch
];
configureFlags = [
"--with-pic"
@@ -0,0 +1,19 @@
https://gmplib.org/repo/gmp-6.2/raw-rev/561a9c25298e
diff -r e1fd9db13b47 -r 561a9c25298e mpz/inp_raw.c
--- 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)
{
+2
View File
@@ -20,6 +20,8 @@ let self = stdenv.mkDerivation rec {
sha256 = "0z2ddfiwgi0xbf65z4fg4hqqzlhv0cc6hdcswf3c6n21xdmk5sga";
};
patches = [ ./6.2.1-CVE-2021-43618.patch ];
#outputs TODO: split $cxx due to libstdc++ dependency
# maybe let ghc use a version with *.so shared with rest of nixpkgs and *.a added
# - see #5855 for related discussion