Fix NULL pointer dereferences in xpm_load_image
* src/image.c (x_destroy_x_image): Correct test condition. (xpm_load_image): Do not release image data if it is still to be created.
This commit is contained in:
parent
1ee8579eb7
commit
b5543c54bf
1 changed files with 7 additions and 4 deletions
11
src/image.c
11
src/image.c
|
@ -3886,7 +3886,7 @@ x_create_x_image_and_pixmap (struct frame *f, int width, int height, int depth,
|
|||
static void
|
||||
x_destroy_x_image (XImage *ximg)
|
||||
{
|
||||
if (ximg)
|
||||
if (ximg->data)
|
||||
{
|
||||
xfree (ximg->data);
|
||||
ximg->data = NULL;
|
||||
|
@ -6505,9 +6505,12 @@ xpm_load_image (struct frame *f,
|
|||
|
||||
failure:
|
||||
image_error ("Invalid XPM3 file (%s)", img->spec);
|
||||
image_destroy_x_image (ximg);
|
||||
image_destroy_x_image (mask_img);
|
||||
image_clear_image (f, img);
|
||||
if (ximg)
|
||||
{
|
||||
image_destroy_x_image (ximg);
|
||||
image_destroy_x_image (mask_img);
|
||||
image_clear_image (f, img);
|
||||
}
|
||||
return 0;
|
||||
|
||||
#undef match
|
||||
|
|
Loading…
Add table
Reference in a new issue