diff options
author | Matthias Clasen <mclasen@redhat.com> | 2011-03-30 02:41:46 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2011-03-30 02:41:46 -0400 |
commit | 3645ce712e1c41a7a800585a366402776b2fe1bf (patch) | |
tree | 386f23a9d34e1985c95b52eef8cd498a144dbc91 /gdk-pixbuf | |
parent | 0d9a669fb1e823f29809b73c6d7646b14c9ac9ef (diff) | |
download | gdk-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.c | 7 |
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); |