cvs: gd(GD_2_0) /libgd/src NEWS gdxpm.c /libgd/src/tests/xpm CMakeLists.txt Makefile.am bug00185.c bug00185.xpm bug00185_damaged.xpm

[email protected] ("Takeshi Abe") Wed, 26 Nov 2008 19:34:23 -0000
Newsgroups php.gd.cvs
Message-ID <cvstabe1227728063@cvsserver>
tabe		Wed Nov 26 19:34:23 2008 UTC

  Added files:                 (Branch: GD_2_0)
    /gd/libgd/src/tests/xpm	bug00185.c bug00185.xpm 
                           	bug00185_damaged.xpm 

  Modified files:              
    /gd/libgd/src	NEWS gdxpm.c 
    /gd/libgd/src/tests/xpm	CMakeLists.txt Makefile.am 
  Log:
  MFH: fixed FS#185.
  
http://cvs.php.net/viewvc.cgi/gd/libgd/src/NEWS?r1=1.4.2.42&r2=1.4.2.43&diff_format=u
Index: gd/libgd/src/NEWS
diff -u gd/libgd/src/NEWS:1.4.2.42 gd/libgd/src/NEWS:1.4.2.43
--- gd/libgd/src/NEWS:1.4.2.42	Mon Nov  3 13:33:02 2008
+++ gd/libgd/src/NEWS	Wed Nov 26 19:34:23 2008
@@ -23,6 +23,7 @@
 174, Fixed that font_path() in gdft.c breaks reentrancy (Takeshi Abe)
 180, Added a Makefile entry for tests/xpm (Takeshi Abe)
 181, Fixed gd_gif_out.c to enable proper interlace
+185, Fixed memory leaks in gdImageCreateFromXpm() (Takeshi Abe)
 
 GD 2.0.35 (2007-06-21)
 41, Fix valgrind error in gdImageFillTiled (Nuno Lopes) 
http://cvs.php.net/viewvc.cgi/gd/libgd/src/gdxpm.c?r1=1.9.2.1&r2=1.9.2.2&diff_format=u
Index: gd/libgd/src/gdxpm.c
diff -u gd/libgd/src/gdxpm.c:1.9.2.1 gd/libgd/src/gdxpm.c:1.9.2.2
--- gd/libgd/src/gdxpm.c:1.9.2.1	Thu Aug 14 10:48:29 2008
+++ gd/libgd/src/gdxpm.c	Wed Nov 26 19:34:23 2008
@@ -45,15 +45,15 @@
 
   number = image.ncolors;
 	if (overflow2(sizeof (int), number)) {
-		return 0;
+		goto done;
 	}
   colors = (int *) gdMalloc (sizeof (int) * number);
   if (colors == NULL)
-    return (0);
+    goto done;
 
   if (!(im = gdImageCreate (image.width, image.height))) {
     gdFree(colors);
-    return 0;
+    goto done;
   }
 
   for (i = 0; i < number; i++)
@@ -154,6 +154,9 @@
 	}
     }
   gdFree (colors);
+ done:
+  XpmFreeXpmImage(&image);
+  XpmFreeXpmInfo(&info);
   return (im);
 }
 #endif /* HAVE_LIBXPM */
http://cvs.php.net/viewvc.cgi/gd/libgd/src/tests/xpm/CMakeLists.txt?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: gd/libgd/src/tests/xpm/CMakeLists.txt
diff -u gd/libgd/src/tests/xpm/CMakeLists.txt:1.1.2.1 gd/libgd/src/tests/xpm/CMakeLists.txt:1.1.2.2
--- gd/libgd/src/tests/xpm/CMakeLists.txt:1.1.2.1	Thu Aug 14 10:48:29 2008
+++ gd/libgd/src/tests/xpm/CMakeLists.txt	Wed Nov 26 19:34:23 2008
@@ -1,6 +1,7 @@
 
 SET(TESTS_FILES
 	bug00166
+	bug00185
 )
 
 FOREACH(test_name ${TESTS_FILES})
http://cvs.php.net/viewvc.cgi/gd/libgd/src/tests/xpm/Makefile.am?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: gd/libgd/src/tests/xpm/Makefile.am
diff -u gd/libgd/src/tests/xpm/Makefile.am:1.1.2.1 gd/libgd/src/tests/xpm/Makefile.am:1.1.2.2
--- gd/libgd/src/tests/xpm/Makefile.am:1.1.2.1	Thu Aug 14 10:48:29 2008
+++ gd/libgd/src/tests/xpm/Makefile.am	Wed Nov 26 19:34:23 2008
@@ -1,3 +1,3 @@
 ## Process this file with automake to produce Makefile.in -*-Makefile-*-
 
-EXTRA_DIST = CMakeLists.txt bug00166.c bug00166.xpm
+EXTRA_DIST = CMakeLists.txt bug00166.c bug00166.xpm bug00185.c bug00185.xpm bug00185_damaged.xpm

http://cvs.php.net/viewvc.cgi/gd/libgd/src/tests/xpm/bug00185.c?view=markup&rev=1.1
Index: gd/libgd/src/tests/xpm/bug00185.c
+++ gd/libgd/src/tests/xpm/bug00185.c

http://cvs.php.net/viewvc.cgi/gd/libgd/src/tests/xpm/bug00185.xpm?view=markup&rev=1.1
Index: gd/libgd/src/tests/xpm/bug00185.xpm
+++ gd/libgd/src/tests/xpm/bug00185.xpm

http://cvs.php.net/viewvc.cgi/gd/libgd/src/tests/xpm/bug00185_damaged.xpm?view=markup&rev=1.1
Index: gd/libgd/src/tests/xpm/bug00185_damaged.xpm
+++ gd/libgd/src/tests/xpm/bug00185_damaged.xpm