beagle r4702 - in trunk/beagle/Util/F-Spot: Imaging upstream-changes



Author: dbera
Date: Sun Apr 13 20:46:22 2008
New Revision: 4702
URL: http://svn.gnome.org/viewvc/beagle?rev=4702&view=rev

Log:
Import old 06-bad-jpeg.diff


Added:
   trunk/beagle/Util/F-Spot/upstream-changes/06-bad-jpeg.diff
Modified:
   trunk/beagle/Util/F-Spot/Imaging/Exif.cs
   trunk/beagle/Util/F-Spot/Imaging/JpegHeader.cs

Modified: trunk/beagle/Util/F-Spot/Imaging/Exif.cs
==============================================================================
--- trunk/beagle/Util/F-Spot/Imaging/Exif.cs	(original)
+++ trunk/beagle/Util/F-Spot/Imaging/Exif.cs	Sun Apr 13 20:46:22 2008
@@ -247,8 +247,12 @@
 			string delimiters = " :";
 			string[] dt_data = dt.Split ( delimiters.ToCharArray(), 6 );
 			DateTime result;
+			try {
 			result = new DateTime (Int32.Parse(dt_data[0]), Int32.Parse(dt_data[1]), Int32.Parse(dt_data[2]),
 					       Int32.Parse(dt_data[3]), Int32.Parse(dt_data[4]), Int32.Parse(dt_data[5]));
+			} catch (FormatException) {
+				result = DateTime.MinValue;
+			}
 			
 			return result;
 		}	

Modified: trunk/beagle/Util/F-Spot/Imaging/JpegHeader.cs
==============================================================================
--- trunk/beagle/Util/F-Spot/Imaging/JpegHeader.cs	(original)
+++ trunk/beagle/Util/F-Spot/Imaging/JpegHeader.cs	Sun Apr 13 20:46:22 2008
@@ -501,7 +501,7 @@
 		bool at_image = false;
 
 		Marker marker = Marker.Load (stream);
-		if (marker.Type != JpegMarker.Soi)
+		if (marker == null || marker.Type != JpegMarker.Soi)
 			throw new System.Exception ("This doesn't appear to be a jpeg stream");
 		
 		this.Markers.Add (marker);

Added: trunk/beagle/Util/F-Spot/upstream-changes/06-bad-jpeg.diff
==============================================================================
--- (empty file)
+++ trunk/beagle/Util/F-Spot/upstream-changes/06-bad-jpeg.diff	Sun Apr 13 20:46:22 2008
@@ -0,0 +1,34 @@
+From: Debajyoti Bera <dbera web gmail com>
+
+Protect against bad jpeg files and files with exif dates in non-conformant syntax.
+
+Index: Imaging/Exif.cs
+===================================================================
+--- Imaging/Exif.cs	(revision 4696)
++++ Imaging/Exif.cs	(working copy)
+@@ -247,8 +247,12 @@
+ 			string delimiters = " :";
+ 			string[] dt_data = dt.Split ( delimiters.ToCharArray(), 6 );
+ 			DateTime result;
++			try {
+ 			result = new DateTime (Int32.Parse(dt_data[0]), Int32.Parse(dt_data[1]), Int32.Parse(dt_data[2]),
+ 					       Int32.Parse(dt_data[3]), Int32.Parse(dt_data[4]), Int32.Parse(dt_data[5]));
++			} catch (FormatException) {
++				result = DateTime.MinValue;
++			}
+ 			
+ 			return result;
+ 		}	
+Index: Imaging/JpegHeader.cs
+===================================================================
+--- Imaging/JpegHeader.cs	(revision 4701)
++++ Imaging/JpegHeader.cs	(working copy)
+@@ -501,7 +501,7 @@
+ 		bool at_image = false;
+ 
+ 		Marker marker = Marker.Load (stream);
+-		if (marker.Type != JpegMarker.Soi)
++		if (marker == null || marker.Type != JpegMarker.Soi)
+ 			throw new System.Exception ("This doesn't appear to be a jpeg stream");
+ 		
+ 		this.Markers.Add (marker);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]