1
diff -ruN libgd2-2.0.33/gd.c libgd2-2.0.33.nmu/gd.c
2
--- libgd2-2.0.33/gd.c 2004-11-01 19:28:56.000000000 +0100
3
+++ libgd2-2.0.33.nmu/gd.c 2005-02-25 19:49:44.000000000 +0100
7
/* 2.03: don't include zlib here or we can't build without PNG */
10
#include "gdhelpers.h"
13
im = (gdImage *) gdMalloc (sizeof (gdImage));
14
memset (im, 0, sizeof (gdImage));
15
/* Row-major ever since gd 1.3 */
16
- im->pixels = (unsigned char **) gdMalloc (sizeof (unsigned char *) * sy);
17
+ if (sy >= INT_MAX/sizeof (unsigned char *) ||
18
+ (im->pixels = (unsigned char **) gdMalloc (sizeof (unsigned char *) * sy)) == NULL) {
23
im->polyAllocated = 0;
27
bytes = (w * h / 8) + 1;
28
im = gdImageCreate (w, h);
31
gdImageColorAllocate (im, 255, 255, 255);
32
gdImageColorAllocate (im, 0, 0, 0);
36
im->polyAllocated *= 2;
38
+ if (im->polyAllocated >= INT_MAX/sizeof (int))
40
im->polyInts = (int *) gdRealloc (im->polyInts,
41
sizeof (int) * im->polyAllocated);
43
diff -ruN libgd2-2.0.33/gd_gd.c libgd2-2.0.33.nmu/gd_gd.c
44
--- libgd2-2.0.33/gd_gd.c 2004-10-27 16:22:04.000000000 +0200
45
+++ libgd2-2.0.33.nmu/gd_gd.c 2005-02-25 19:49:44.000000000 +0100
48
im = gdImageCreate (*sx, *sy);
54
if (!_gdGetColors (in, im, gd2xFlag))
57
diff -ruN libgd2-2.0.33/gd_io_dp.c libgd2-2.0.33.nmu/gd_io_dp.c
58
--- libgd2-2.0.33/gd_io_dp.c 2004-10-28 20:05:17.000000000 +0200
59
+++ libgd2-2.0.33.nmu/gd_io_dp.c 2005-02-25 19:49:44.000000000 +0100
66
#include "gdhelpers.h"
69
if (overflow2(dp->realSize, 2)) {
72
- if (!gdReallocDynamic (dp, dp->realSize * 2))
73
+ if (bytesNeeded >= INT_MAX/2 ||
74
+ !gdReallocDynamic (dp, bytesNeeded * 2))
78
diff -ruN libgd2-2.0.33/gd_png.c libgd2-2.0.33.nmu/gd_png.c
79
--- libgd2-2.0.33/gd_png.c 2004-10-28 20:09:52.000000000 +0200
80
+++ libgd2-2.0.33.nmu/gd_png.c 2005-02-25 19:49:44.000000000 +0100
89
/* JCE: Arrange HAVE_LIBPNG so that it can be set in gd.h */
92
png_get_IHDR (png_ptr, info_ptr, &width, &height, &bit_depth, &color_type,
93
&interlace_type, NULL, NULL);
94
+ if (width >= INT_MAX/sizeof (int) ||
95
+ width*sizeof (int) >= INT_MAX/height)
97
if ((color_type == PNG_COLOR_TYPE_RGB) ||
98
(color_type == PNG_COLOR_TYPE_RGB_ALPHA))
100
diff -ruN libgd2-2.0.33/gdxpm.c libgd2-2.0.33.nmu/gdxpm.c
101
--- libgd2-2.0.33/gdxpm.c 2004-10-28 18:54:24.000000000 +0200
102
+++ libgd2-2.0.33.nmu/gdxpm.c 2005-02-25 19:49:44.000000000 +0100
110
#include "gdhelpers.h"
114
number = image.ncolors;
116
+ if (number >= INT_MAX/sizeof (int))
119
colors = (int *) gdMalloc (sizeof (int) * number);
122
diff -ruN libgd2-2.0.33/wbmp.c libgd2-2.0.33.nmu/wbmp.c
123
--- libgd2-2.0.33/wbmp.c 2004-10-28 20:13:31.000000000 +0200
124
+++ libgd2-2.0.33.nmu/wbmp.c 2005-02-25 19:49:44.000000000 +0100
137
- if ((wbmp->bitmap =
138
- (int *) gdMalloc (sizeof (int) * width * height)) == NULL)
140
+ if (width >= INT_MAX/sizeof(int) ||
141
+ width*sizeof(int) >= INT_MAX/height ||
142
+ (wbmp->bitmap = (int *) gdMalloc (sizeof (int) * width * height)) == NULL)
150
- if ((wbmp->bitmap =
151
- (int *) gdMalloc (sizeof (int) * wbmp->width * wbmp->height)) == NULL)
152
+ if (wbmp->width >= INT_MAX/sizeof(int) ||
153
+ wbmp->width*sizeof(int) >= INT_MAX/wbmp->height ||
154
+ (wbmp->bitmap = (int *) gdMalloc (sizeof (int) * wbmp->width * wbmp->height)) == NULL)