* #797 possible leak on png error, returns from setjmp lost the row_pointers ref somehow * skip that one using mingw until we have a reliable portable FP related tests suites (may never happpen)master
parent
3f872fc931
commit
0956816bc6
|
@ -1079,11 +1079,12 @@ static int _gdImagePngCtxEx(gdImagePtr im, gdIOCtx * outfile, int level)
|
||||||
}
|
}
|
||||||
|
|
||||||
png_write_image (png_ptr, row_pointers);
|
png_write_image (png_ptr, row_pointers);
|
||||||
png_write_end (png_ptr, info_ptr);
|
|
||||||
|
|
||||||
for (j = 0; j < height; ++j)
|
for (j = 0; j < height; ++j)
|
||||||
gdFree (row_pointers[j]);
|
gdFree (row_pointers[j]);
|
||||||
gdFree (row_pointers);
|
gdFree (row_pointers);
|
||||||
|
|
||||||
|
png_write_end (png_ptr, info_ptr);
|
||||||
} else {
|
} else {
|
||||||
png_write_image (png_ptr, im->pixels);
|
png_write_image (png_ptr, im->pixels);
|
||||||
png_write_end (png_ptr, info_ptr);
|
png_write_end (png_ptr, info_ptr);
|
||||||
|
|
|
@ -6,6 +6,7 @@ LIST(APPEND TESTS_FILES
|
||||||
bug00309
|
bug00309
|
||||||
bug00354
|
bug00354
|
||||||
bug00383
|
bug00383
|
||||||
|
bug797
|
||||||
createimagefromgd2part
|
createimagefromgd2part
|
||||||
createimagefromgd2partptr
|
createimagefromgd2partptr
|
||||||
gd2_empty_file
|
gd2_empty_file
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
/**
|
||||||
|
* Test that invalid transparent colors can't be read
|
||||||
|
*
|
||||||
|
* We're reading a corrupt palette image in GD2 format, which has only a single
|
||||||
|
* palette entry, but claims that the transparent color would be 1. We check
|
||||||
|
* that the transparency is simply ignored in this case.
|
||||||
|
*
|
||||||
|
* See also <https://github.com/libgd/libgd/issues/383>
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "gd.h"
|
||||||
|
#include "gdtest.h"
|
||||||
|
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
gdImagePtr im;
|
||||||
|
FILE *fp;
|
||||||
|
|
||||||
|
fp = gdTestFileOpen2("gd2", "bug797.gd2");
|
||||||
|
gdTestAssert(fp != NULL);
|
||||||
|
im = gdImageCreateFromGd2(fp);
|
||||||
|
gdTestAssert(im != NULL);
|
||||||
|
fclose(fp);
|
||||||
|
|
||||||
|
gdTestAssert(gdImageGetTransparent(im) == -1);
|
||||||
|
|
||||||
|
gdImageDestroy(im);
|
||||||
|
|
||||||
|
return gdNumFailures();
|
||||||
|
}
|
Binary file not shown.
|
@ -1,8 +1,14 @@
|
||||||
IF(FREETYPE_FOUND)
|
IF(FREETYPE_FOUND)
|
||||||
LIST(APPEND TESTS_FILES
|
LIST(APPEND TESTS_FILES
|
||||||
bug00615
|
bug00615
|
||||||
|
)
|
||||||
|
|
||||||
|
IF (NOT MINGW)
|
||||||
|
LIST(APPEND TESTS_FILES
|
||||||
gdimagestringft_bbox
|
gdimagestringft_bbox
|
||||||
)
|
)
|
||||||
|
ENDIF(NOT MINGW)
|
||||||
|
|
||||||
ENDIF(FREETYPE_FOUND)
|
ENDIF(FREETYPE_FOUND)
|
||||||
|
|
||||||
ADD_GD_TESTS()
|
ADD_GD_TESTS()
|
||||||
|
|
Loading…
Reference in New Issue