From: Eli Zaretskii Date: Tue, 8 Sep 2020 16:17:23 +0000 (+0300) Subject: Avoid crashes when trying to load bad GIF files X-Git-Tag: emacs-27.1.90~156 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=366a97c980f068a3ed665d337d644ee58cd25ca0;p=emacs.git Avoid crashes when trying to load bad GIF files * src/image.c (gif_load): Handle the case when GifErrorString returns NULL. (Bug#43281) --- diff --git a/src/image.c b/src/image.c index 56878bcb8cb..956fb1325ed 100644 --- a/src/image.c +++ b/src/image.c @@ -8160,11 +8160,13 @@ gif_load (struct frame *f, struct image *img) if (gif == NULL) { #if HAVE_GIFERRORSTRING - image_error ("Cannot open `%s': %s", - file, build_string (GifErrorString (gif_err))); -#else - image_error ("Cannot open `%s'", file); + const char *errstr = GifErrorString (gif_err); + if (errstr) + image_error ("Cannot open `%s': %s", file, build_string (errstr)); + else #endif + image_error ("Cannot open `%s'", file); + return 0; } } @@ -8190,11 +8192,13 @@ gif_load (struct frame *f, struct image *img) if (!gif) { #if HAVE_GIFERRORSTRING - image_error ("Cannot open memory source `%s': %s", - img->spec, build_string (GifErrorString (gif_err))); -#else - image_error ("Cannot open memory source `%s'", img->spec); + const char *errstr = GifErrorString (gif_err); + if (errstr) + image_error ("Cannot open memory source `%s': %s", + img->spec, build_string (errstr)); + else #endif + image_error ("Cannot open memory source `%s'", img->spec); return 0; } } @@ -8474,9 +8478,9 @@ gif_load (struct frame *f, struct image *img) if (error_text) image_error ("Error closing `%s': %s", img->spec, build_string (error_text)); -#else - image_error ("Error closing `%s'", img->spec); + else #endif + image_error ("Error closing `%s'", img->spec); } /* Maybe fill in the background field while we have ximg handy. */