Author: spouliot
Date: 2007-03-23 09:21:10 -0500 (Fri, 23 Mar 2007)
New Revision: 74872
Modified:
trunk/libgdiplus/src/ChangeLog
trunk/libgdiplus/src/jpegcodec.c
Log:
2007-03-23 Sebastien Pouliot <[EMAIL PROTECTED]>
* jpegcodec.c: Re-enable sigsetjmp to handle malformed JPEG files.
Also don't try to load EXIF data if loading failed. Fix bug #80980.
Modified: trunk/libgdiplus/src/ChangeLog
===================================================================
--- trunk/libgdiplus/src/ChangeLog 2007-03-23 14:04:02 UTC (rev 74871)
+++ trunk/libgdiplus/src/ChangeLog 2007-03-23 14:21:10 UTC (rev 74872)
@@ -1,5 +1,7 @@
-2007-03-23 Sebastien Pouliot <[EMAIL PROTECTED]>
+2007-03-23 Sebastien Pouliot <[EMAIL PROTECTED]>
+ * jpegcodec.c: Re-enable sigsetjmp to handle malformed JPEG files.
+ Also don't try to load EXIF data if loading failed. Fix bug #80980.
* metafile.c: More endian fixes (EMF headers)
2007-03-22 Sebastien Pouliot <[EMAIL PROTECTED]>
Modified: trunk/libgdiplus/src/jpegcodec.c
===================================================================
--- trunk/libgdiplus/src/jpegcodec.c 2007-03-23 14:04:02 UTC (rev 74871)
+++ trunk/libgdiplus/src/jpegcodec.c 2007-03-23 14:21:10 UTC (rev 74872)
@@ -124,7 +124,7 @@
static void
_gdip_jpeg_error_exit (j_common_ptr cinfo)
{
- /*gdip_jpeg_error_mgr_ptr err = (gdip_jpeg_error_mgr_ptr) cinfo->err;*/
+ gdip_jpeg_error_mgr_ptr err = (gdip_jpeg_error_mgr_ptr) cinfo->err;
char buffer[JMSG_LENGTH_MAX];
(* cinfo->err->format_message) (cinfo, buffer);
@@ -136,10 +136,9 @@
* what's going on here.
* -- FIXME
*/
-#if 0
- printf ("jpeg error: %d %s\n", err->parent.msg_code, buffer);
+
+ g_warning ("jpeg error: %d %s\n", err->parent.msg_code, buffer);
siglongjmp (err->setjmp_buffer, 1);
-#endif
}
static void
@@ -496,8 +495,6 @@
return Ok;
error:
- jpeg_destroy_decompress (&cinfo);
-
/* coverity[dead_error_line] */
if (destbuf != NULL) {
GdipFree (destbuf);
@@ -580,7 +577,9 @@
GdipFree (src->buf);
GdipFree (src);
#ifdef HAVE_LIBEXIF
- load_exif_data (exif_data_new_from_file (filename), *image);
+ if (st == Ok) {
+ load_exif_data (exif_data_new_from_file (filename), *image);
+ }
#endif
return st;
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches