plug a memleak in _gdImageFillTiled() on error condition
replace a malloc+memset with calloc instance
This commit is contained in:
parent
3582807a58
commit
9d05dd439d
4
src/gd.c
4
src/gd.c
@ -80,12 +80,11 @@ BGD_DECLARE(gdImagePtr) gdImageCreate (int sx, int sy)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
im = (gdImage *) gdMalloc (sizeof (gdImage));
|
im = (gdImage *) gdCalloc(1, sizeof(gdImage));
|
||||||
if (!im) {
|
if (!im) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
memset (im, 0, sizeof (gdImage));
|
|
||||||
/* Row-major ever since gd 1.3 */
|
/* Row-major ever since gd 1.3 */
|
||||||
im->pixels = (unsigned char **) gdMalloc (sizeof (unsigned char *) * sy);
|
im->pixels = (unsigned char **) gdMalloc (sizeof (unsigned char *) * sy);
|
||||||
if (!im->pixels) {
|
if (!im->pixels) {
|
||||||
@ -2028,6 +2027,7 @@ static void _gdImageFillTiled(gdImagePtr im, int x, int y, int nc)
|
|||||||
|
|
||||||
stack = (struct seg *)gdMalloc(sizeof(struct seg) * ((int)(im->sy*im->sx)/4));
|
stack = (struct seg *)gdMalloc(sizeof(struct seg) * ((int)(im->sy*im->sx)/4));
|
||||||
if (!stack) {
|
if (!stack) {
|
||||||
|
gdFree(pts);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
sp = stack;
|
sp = stack;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user