Avoid crashes when trying to load bad GIF files
* src/image.c (gif_load): Handle the case when GifErrorString returns NULL. (Bug#43281)
This commit is contained in:
24
src/image.c
24
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. */
|
||||
|
||||
Reference in New Issue
Block a user