Fix possible infinite loop (php bug report #68713)

- make code more legible (yy>=yy-1 seems ugly)
- fix mem leak, always free src->tpixels
master
Remi Collet 2015-01-02 09:09:22 +01:00
parent c9e458bc88
commit 3c0d2203b2
1 changed files with 6 additions and 8 deletions

View File

@ -3639,8 +3639,8 @@ BGD_DECLARE(int) gdImagePaletteToTrueColor(gdImagePtr src)
}
}
/* free old palette buffer */
for (yy = y - 1; yy >= yy - 1; yy--) {
/* free old palette buffer (y is sy) */
for (yy = 0; yy < y; yy++) {
gdFree(src->pixels[yy]);
}
gdFree(src->pixels);
@ -3651,12 +3651,10 @@ BGD_DECLARE(int) gdImagePaletteToTrueColor(gdImagePtr src)
return 1;
clean_on_error:
if (y > 0) {
for (yy = y; yy >= yy - 1; y--) {
gdFree(src->tpixels[y]);
}
gdFree(src->tpixels);
/* free new palette buffer (y is not allocated) */
for (yy = 0; yy < y; yy++) {
gdFree(src->tpixels[yy]);
}
gdFree(src->tpixels);
return 0;
}