cvs: gd(GD_2_0) /libgd/src gd_png.c
[email protected] ("Takeshi Abe") Sat, 14 Mar 2009 04:17:14 -0000
| Newsgroups | php.gd.cvs |
|---|---|
| Message-ID | <cvstabe1237004234@cvsserver> |
tabe Sat Mar 14 04:17:14 2009 UTC
Modified files: (Branch: GD_2_0)
/gd/libgd/src gd_png.c
Log:
MFH: fixed a slim chance of memory leaks.
http://cvs.php.net/viewvc.cgi/gd/libgd/src/gd_png.c?r1=1.21.2.5&r2=1.21.2.6&diff_format=u
Index: gd/libgd/src/gd_png.c
diff -u gd/libgd/src/gd_png.c:1.21.2.5 gd/libgd/src/gd_png.c:1.21.2.6
--- gd/libgd/src/gd_png.c:1.21.2.5 Fri Mar 13 20:26:55 2009
+++ gd/libgd/src/gd_png.c Sat Mar 14 04:17:14 2009
@@ -1,4 +1,4 @@
-/* $Id: gd_png.c,v 1.21.2.5 2009/03/13 20:26:55 tabe Exp $ */
+/* $Id: gd_png.c,v 1.21.2.6 2009/03/14 04:17:14 tabe Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -743,14 +743,13 @@
png_bytep *prow_pointers;
int saveAlphaFlag = im->saveAlphaFlag;
if (overflow2(sizeof (png_bytep), height)) {
- return;
+ goto bail;
}
row_pointers = gdMalloc (sizeof (png_bytep) * height);
if (row_pointers == NULL)
{
fprintf (stderr, "gd-png error: unable to allocate row_pointers\n");
- /* 2.0.29: return was missing */
- return;
+ goto bail;
}
prow_pointers = row_pointers;
for (j = 0; j < height; ++j)
@@ -763,7 +762,7 @@
gdFree (row_pointers[i]);
/* 2.0.29: memory leak TBB */
gdFree(row_pointers);
- return;
+ goto bail;
}
pOutputRow = *prow_pointers++;
pThisRow = *ptpixels++;
@@ -801,15 +800,13 @@
{
png_bytep *row_pointers;
if (overflow2(sizeof (png_bytep), height)) {
- return;
+ goto bail;
}
row_pointers = gdMalloc (sizeof (png_bytep) * height);
if (row_pointers == NULL)
{
- fprintf (stderr,
- "gd-png error: unable to allocate row_pointers\n");
- /* TBB: return missing */
- return;
+ fprintf (stderr, "gd-png error: unable to allocate row_pointers\n");
+ goto bail;
}
for (j = 0; j < height; ++j)
{
@@ -820,7 +817,7 @@
gdFree (row_pointers[i]);
/* TBB: memory leak */
gdFree (row_pointers);
- return;
+ goto bail;
}
for (i = 0; i < width; ++i)
row_pointers[j][i] = mapping[im->pixels[j][i]];