summaryrefslogtreecommitdiff
path: root/gdk-pixbuf
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2011-03-30 02:41:46 -0400
committerMatthias Clasen <mclasen@redhat.com>2011-03-30 02:41:46 -0400
commit3645ce712e1c41a7a800585a366402776b2fe1bf (patch)
tree386f23a9d34e1985c95b52eef8cd498a144dbc91 /gdk-pixbuf
parent0d9a669fb1e823f29809b73c6d7646b14c9ac9ef (diff)
downloadgdk-pixbuf-3645ce712e1c41a7a800585a366402776b2fe1bf.tar.gz
Set up a jmp target in begin_load too
This needs to be done before calling into libjpeg to catch errors coming out of jpeg_create_decompress. Patch by Craig Schlenter, http://bugzilla.gnome.org/show_bug.cgi?id=636138
Diffstat (limited to 'gdk-pixbuf')
-rw-r--r--gdk-pixbuf/io-jpeg.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gdk-pixbuf/io-jpeg.c b/gdk-pixbuf/io-jpeg.c
index c41914d4f..8560c9417 100644
--- a/gdk-pixbuf/io-jpeg.c
+++ b/gdk-pixbuf/io-jpeg.c
@@ -662,6 +662,13 @@ gdk_pixbuf__jpeg_image_begin_load (GdkPixbufModuleSizeFunc size_func,
context->jerr.pub.output_message = output_message_handler;
context->jerr.error = error;
+ if (sigsetjmp (context->jerr.setjmp_buffer, 1)) {
+ jpeg_destroy_decompress (&context->cinfo);
+ g_free(context);
+ /* error should have been set by fatal_error_handler () */
+ return NULL;
+ }
+
/* create libjpeg structures */
jpeg_create_decompress (&context->cinfo);