From f7e13da36c982977ccfe6de1e43d8f8b3bb59c8f Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 10 Jun 2011 12:52:27 -0700 Subject: [PATCH] * image.c (imagemagick_load_image): Don't use garbage pointer image_wand. --- src/ChangeLog | 1 + src/image.c | 18 +++++++----------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 60669c3719..b0a3606ee5 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -17,6 +17,7 @@ Remove unused locals. Remove locals to avoid shadowing. (fn_rsvg_handle_free): Remove; unused. (svg_load, svg_load_image): Fix pointer signedness problem. + (imagemagick_load_image): Don't use garbage pointer image_wand. * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals. diff --git a/src/image.c b/src/image.c index 8fec98f281..3d1724492a 100644 --- a/src/image.c +++ b/src/image.c @@ -7550,23 +7550,18 @@ imagemagick_load_image (struct frame *f, struct image *img, im_image = ReadImage (image_info, exception); DestroyExceptionInfo (exception); - if (im_image != NULL) - { - image_wand = NewMagickWandFromImage (im_image); - DestroyImage(im_image); - status = MagickTrue; - } - else - status = MagickFalse; + if (im_image == NULL) + goto imagemagick_no_wand; + image_wand = NewMagickWandFromImage (im_image); + DestroyImage(im_image); } else { image_wand = NewMagickWand (); - status = MagickReadImageBlob (image_wand, contents, size); + if (MagickReadImageBlob (image_wand, contents, size) == MagickFalse) + goto imagemagick_error; } - if (status == MagickFalse) goto imagemagick_error; - /* If width and/or height is set in the display spec assume we want to scale to those values. If either h or w is unspecified, the unspecified should be calculated from the specified to preserve @@ -7794,6 +7789,7 @@ imagemagick_load_image (struct frame *f, struct image *img, imagemagick_error: DestroyMagickWand (image_wand); + imagemagick_no_wand: MagickWandTerminus (); /* TODO more cleanup. */ image_error ("Error parsing IMAGEMAGICK image `%s'", img->spec, Qnil); -- 2.20.1