1 diff -Naurd mpfr-2.4.0-a/PATCHES mpfr-2.4.0-b/PATCHES
2 --- mpfr-2.4.0-a/PATCHES 2009-02-25 13:27:38.000000000 +0000
3 +++ mpfr-2.4.0-b/PATCHES 2009-02-25 13:42:26.000000000 +0000
6 diff -Naurd mpfr-2.4.0-a/VERSION mpfr-2.4.0-b/VERSION
7 --- mpfr-2.4.0-a/VERSION 2009-02-20 17:27:44.000000000 +0000
8 +++ mpfr-2.4.0-b/VERSION 2009-02-25 13:41:31.000000000 +0000
12 diff -Naurd mpfr-2.4.0-a/mpfr.h mpfr-2.4.0-b/mpfr.h
13 --- mpfr-2.4.0-a/mpfr.h 2009-02-20 17:27:44.000000000 +0000
14 +++ mpfr-2.4.0-b/mpfr.h 2009-02-25 13:41:31.000000000 +0000
16 #define MPFR_VERSION_MAJOR 2
17 #define MPFR_VERSION_MINOR 4
18 #define MPFR_VERSION_PATCHLEVEL 0
19 -#define MPFR_VERSION_STRING "2.4.0-p1"
20 +#define MPFR_VERSION_STRING "2.4.0-p2"
22 /* Macros dealing with MPFR VERSION */
23 #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
24 diff -Naurd mpfr-2.4.0-a/printf.c mpfr-2.4.0-b/printf.c
25 --- mpfr-2.4.0-a/printf.c 2009-01-26 12:52:01.000000000 +0000
26 +++ mpfr-2.4.0-b/printf.c 2009-02-25 13:41:22.000000000 +0000
31 - /* C99 allows SIZE to be null */
35 - MPFR_ASSERTD (buf != NULL);
37 GET_STR (ret, str, fmt);
38 - min_size = (size_t)ret < size ? (size_t)ret : size - 1;
39 - strncpy (buf, str, min_size);
40 - buf[min_size + 1] = '\0';
42 + /* C99 allows SIZE to be zero */
45 + MPFR_ASSERTN (buf != NULL);
46 + min_size = (size_t)ret < size ? (size_t)ret : size - 1;
47 + strncpy (buf, str, min_size);
48 + buf[min_size] = '\0';
57 - /* C99 allows SIZE to be null */
60 + GET_STR_VA (ret, str, fmt, ap);
62 - MPFR_ASSERTD (buf != NULL);
63 + /* C99 allows SIZE to be zero */
66 + MPFR_ASSERTN (buf != NULL);
67 + min_size = (size_t)ret < size ? (size_t)ret : size - 1;
68 + strncpy (buf, str, min_size);
69 + buf[min_size] = '\0';
72 - GET_STR_VA (ret, str, fmt, ap);
73 - min_size = (size_t)ret < size ? (size_t)ret : size - 1;
74 - strncpy (buf, str, min_size);
75 - buf[min_size + 1] = '\0';
79 diff -Naurd mpfr-2.4.0-a/tests/tsprintf.c mpfr-2.4.0-b/tests/tsprintf.c
80 --- mpfr-2.4.0-a/tests/tsprintf.c 2009-01-26 12:52:00.000000000 +0000
81 +++ mpfr-2.4.0-b/tests/tsprintf.c 2009-02-25 13:41:22.000000000 +0000
84 /* test mpfr_snprintf */
85 p = (int) (randlimb () % n0);
86 - n1 = mpfr_snprintf (buffer, p, fmt, x);
87 - if ((p != 0 && n0 != n1) || (p == 0 && n1 != 0))
88 + if (p == 0 && (randlimb () & 1) == 0)
90 + n1 = mpfr_snprintf (NULL, 0, fmt, x);
95 + n1 = mpfr_snprintf (buffer, p, fmt, x);
96 + if (buffer[p] != 17)
98 + printf ("Buffer overflow in mpfr_snprintf for p = %d!\n", p);
104 printf ("Error in mpfr_snprintf (s, %d, \"%s\", x) return value\n",
106 printf ("expected: %d\ngot: %d\n", n0, n1);
109 - if (strncmp (expected, buffer, p) != 0)
110 + if ((p > 1 && strncmp (expected, buffer, p-1) != 0)
111 + || (p == 1 && buffer[0] != '\0'))
113 - printf ("Error in mpfr_snprintf (s, %d, \"%s\", x);\n", p, fmt);
114 - printf ("expected: \"%s\"\ngot: \"%s\"\n", expected, buffer);
115 + char part_expected[p];
116 + strncpy (part_expected, expected, p);
117 + part_expected[p-1] = '\0';
118 + printf ("Error in mpfr_vsnprintf (s, %d, \"%s\", ...);\n", p, fmt);
119 + printf ("expected: \"%s\"\ngot: \"%s\"\n", part_expected, buffer);
128 /* test mpfr_snprintf */
129 p = (int) (randlimb () % n0);
130 - n1 = mpfr_vsnprintf (buffer, p, fmt, ap1);
131 - if ((p != 0 && n0 != n1) || (p == 0 && n1 != 0))
132 + if (p == 0 && (randlimb () & 1) == 0)
134 + n1 = mpfr_vsnprintf (NULL, 0, fmt, ap1);
139 + n1 = mpfr_vsnprintf (buffer, p, fmt, ap1);
140 + if (buffer[p] != 17)
142 + printf ("Buffer overflow in mpfr_vsnprintf for p = %d!\n", p);
148 printf ("Error in mpfr_vsnprintf (s, %d, \"%s\", ...) return value\n",
150 @@ -126,10 +155,14 @@
154 - if (strncmp (expected, buffer, p) != 0)
155 + if ((p > 1 && strncmp (expected, buffer, p-1) != 0)
156 + || (p == 1 && buffer[0] != '\0'))
158 + char part_expected[p];
159 + strncpy (part_expected, expected, p);
160 + part_expected[p-1] = '\0';
161 printf ("Error in mpfr_vsnprintf (s, %d, \"%s\", ...);\n", p, fmt);
162 - printf ("expected: \"%s\"\ngot: \"%s\"\n", expected, buffer);
163 + printf ("expected: \"%s\"\ngot: \"%s\"\n", part_expected, buffer);
167 diff -Naurd mpfr-2.4.0-a/version.c mpfr-2.4.0-b/version.c
168 --- mpfr-2.4.0-a/version.c 2009-02-20 17:27:44.000000000 +0000
169 +++ mpfr-2.4.0-b/version.c 2009-02-25 13:41:31.000000000 +0000
172 mpfr_get_version (void)