Fix possible infinite loop (php bug report #68713)
- make code more legible (yy>=yy-1 seems ugly) - fix mem leak, always free src->tpixelsmaster
parent
c9e458bc88
commit
3c0d2203b2
14
src/gd.c
14
src/gd.c
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue