cvs: gd(GD_2_0) /libgd NEWS gd.c
[email protected] ("Mattias Bengtsson") Wed, 08 Aug 2007 12:57:46 -0000
| Newsgroups | php.gd.cvs |
|---|---|
| Message-ID | <cvsmattias1186577866@cvsserver> |
mattias Wed Aug 8 12:57:46 2007 UTC
Modified files: (Branch: GD_2_0)
/gd/libgd gd.c NEWS
Log:
-MFH: #109, Possible integer overflow in gdImageFill()
http://cvs.php.net/viewvc.cgi/gd/libgd/gd.c?r1=1.49.2.16&r2=1.49.2.17&diff_format=u
Index: gd/libgd/gd.c
diff -u gd/libgd/gd.c:1.49.2.16 gd/libgd/gd.c:1.49.2.17
--- gd/libgd/gd.c:1.49.2.16 Tue Jun 19 20:25:51 2007
+++ gd/libgd/gd.c Wed Aug 8 12:57:46 2007
@@ -1,4 +1,4 @@
-/* $Id: gd.c,v 1.49.2.16 2007/06/19 20:25:51 pajoye Exp $ */
+/* $Id: gd.c,v 1.49.2.17 2007/08/08 12:57:46 mattias Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -1955,6 +1955,14 @@
goto done;
}
+ if(overflow2(im->sy, im->sx)) {
+ return;
+ }
+
+ if(overflow2(sizeof(struct seg), ((im->sy * im->sx) / 4))) {
+ return;
+ }
+
stack = (struct seg *)gdMalloc(sizeof(struct seg) * ((int)(im->sy*im->sx)/4));
if (!stack) {
return;
@@ -2020,6 +2028,14 @@
wx2=im->sx;wy2=im->sy;
tiled = nc==gdTiled;
+ if(overflow2(im->sy, im->sx)) {
+ return;
+ }
+
+ if(overflow2(sizeof(struct seg), ((im->sy * im->sx) / 4))) {
+ return;
+ }
+
nc = gdImageTileGet(im,x,y);
pts = (int **) gdCalloc(sizeof(int *) * im->sy, sizeof(int));
if (!pts) {
http://cvs.php.net/viewvc.cgi/gd/libgd/NEWS?r1=1.4.2.28&r2=1.4.2.29&diff_format=u
Index: gd/libgd/NEWS
diff -u gd/libgd/NEWS:1.4.2.28 gd/libgd/NEWS:1.4.2.29
--- gd/libgd/NEWS:1.4.2.28 Tue Aug 7 19:50:39 2007
+++ gd/libgd/NEWS Wed Aug 8 12:57:46 2007
@@ -5,6 +5,7 @@
97, ease the creation of regexps to match symbols/functions
101, _gdCreateFromFile() can crash if gdImageCreate fails (Mattias Bengtsson)
105, gdImageCreateFrom*Ptr() can crash if gdNewDynamicCtxEx() fails (Mattias)
+109, Possible integer overflow in gdImageFill() (Mattias Bengtsson)
GD 2.0.35 (2007-06-21)
41, Fix valgrind error in gdImageFillTiled (Nuno Lopes)