[gthumb] jpeg loader: fixed possible crash when a jpeg image is broken
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb] jpeg loader: fixed possible crash when a jpeg image is broken
- Date: Fri, 1 Mar 2019 20:09:29 +0000 (UTC)
commit 82fa9d0007d8c34c62ce7177ec729c314df47ddb
Author: Paolo Bacchilega <paobac src gnome org>
Date: Fri Mar 1 21:07:53 2019 +0100
jpeg loader: fixed possible crash when a jpeg image is broken
extensions/cairo_io/cairo-image-surface-jpeg.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
---
diff --git a/extensions/cairo_io/cairo-image-surface-jpeg.c b/extensions/cairo_io/cairo-image-surface-jpeg.c
index 92abc051..3453d5a1 100644
--- a/extensions/cairo_io/cairo-image-surface-jpeg.c
+++ b/extensions/cairo_io/cairo-image-surface-jpeg.c
@@ -180,6 +180,7 @@ _cairo_image_surface_create_from_jpeg (GInputStream *istream,
unsigned char *p_buffer;
int x;
gboolean read_all_scanlines = FALSE;
+ gboolean finished = FALSE;
image = gth_image_new ();
surface = NULL;
@@ -585,12 +586,15 @@ _cairo_image_surface_create_from_jpeg (GInputStream *istream,
surface = NULL; /* ignore other jpeg errors */
}
- if (read_all_scanlines)
- jpeg_finish_decompress (&srcinfo);
- else
- jpeg_abort_decompress (&srcinfo);
- jpeg_destroy_decompress (&srcinfo);
- g_free (in_buffer);
+ if (! finished) {
+ finished = TRUE;
+ if (read_all_scanlines)
+ jpeg_finish_decompress (&srcinfo);
+ else
+ jpeg_abort_decompress (&srcinfo);
+ jpeg_destroy_decompress (&srcinfo);
+ g_free (in_buffer);
+ }
return image;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]