components/mpfr/patches/000-2.4.2-CVE-2014-9474.patch_1
author Norm Jacobs <Norm.Jacobs@Oracle.COM>
Wed, 29 Mar 2017 13:17:19 -0700
changeset 7813 d18938ebcb0d
permissions -rw-r--r--
17899136 upgrade GNU MPFR to 3.1.5 22234509 GNU MPFR should be built with GCC
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7813
d18938ebcb0d 17899136 upgrade GNU MPFR to 3.1.5
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     1
# Original patch for libmpfr 3.1.2 is here:
d18938ebcb0d 17899136 upgrade GNU MPFR to 3.1.5
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     2
# http://www.mpfr.org/mpfr-3.1.2/patch11
d18938ebcb0d 17899136 upgrade GNU MPFR to 3.1.5
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     3
# Backported to libmpfr 2.4.2.
d18938ebcb0d 17899136 upgrade GNU MPFR to 3.1.5
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     4
--- mpfr-2.4.2/strtofr.c	2009-11-29 18:43:08.000000000 -0800
d18938ebcb0d 17899136 upgrade GNU MPFR to 3.1.5
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     5
+++ mpfr-2.4.2/strtofr.c	2015-01-23 11:30:29.242406530 -0800
d18938ebcb0d 17899136 upgrade GNU MPFR to 3.1.5
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     6
@@ -464,8 +464,10 @@
d18938ebcb0d 17899136 upgrade GNU MPFR to 3.1.5
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     7
       /* prec bits corresponds to ysize limbs */
d18938ebcb0d 17899136 upgrade GNU MPFR to 3.1.5
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     8
       ysize_bits = ysize * BITS_PER_MP_LIMB;
d18938ebcb0d 17899136 upgrade GNU MPFR to 3.1.5
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     9
       /* and to ysize_bits >= prec > MPFR_PREC (x) bits */
d18938ebcb0d 17899136 upgrade GNU MPFR to 3.1.5
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    10
-      y = (mp_limb_t*) MPFR_TMP_ALLOC ((2 * ysize + 1) * sizeof (mp_limb_t));
d18938ebcb0d 17899136 upgrade GNU MPFR to 3.1.5
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    11
-      y += ysize; /* y has (ysize+1) allocated limbs */
d18938ebcb0d 17899136 upgrade GNU MPFR to 3.1.5
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    12
+      /* we need to allocate one more limb to work around
d18938ebcb0d 17899136 upgrade GNU MPFR to 3.1.5
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    13
+       * https://gmplib.org/list-archives/gmp-bugs/2013-December/003267.html */
d18938ebcb0d 17899136 upgrade GNU MPFR to 3.1.5
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    14
+      y = (mp_limb_t*) MPFR_TMP_ALLOC ((2 * ysize + 2) * sizeof (mp_limb_t));
d18938ebcb0d 17899136 upgrade GNU MPFR to 3.1.5
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    15
+      y += ysize; /* y has (ysize+2) allocated limbs */
d18938ebcb0d 17899136 upgrade GNU MPFR to 3.1.5
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    16
 
d18938ebcb0d 17899136 upgrade GNU MPFR to 3.1.5
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    17
       /* pstr_size is the number of characters we read in pstr->mant
d18938ebcb0d 17899136 upgrade GNU MPFR to 3.1.5
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    18
          to have at least ysize full limbs.