[Mono-bugs] [Bug 79191][Maj] New - Image.Dispose generates SIGABRT with gif files

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Sun Aug 27 18:45:09 EDT 2006


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by mark at mintaka.demon.co.uk.

http://bugzilla.ximian.com/show_bug.cgi?id=79191

--- shadow/79191	2006-08-27 18:45:09.000000000 -0400
+++ shadow/79191.tmp.24983	2006-08-27 18:45:09.000000000 -0400
@@ -0,0 +1,98 @@
+Bug#: 79191
+Product: Mono: Class Libraries
+Version: 1.1
+OS: other
+OS Details: Fedora Core 5
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Major
+Component: libgdiplus
+AssignedTo: peter at novonyx.com                            
+ReportedBy: mark at mintaka.demon.co.uk               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: Image.Dispose generates SIGABRT with gif files
+
+Description of Problem:
+
+System.Drawing.Image loaded with a GIF file bombs on program exit, or 
+when explicitly calling Image.Dispose() method.
+
+
+Steps to reproduce the problem:
+
+1. Find a GIF file.
+
+
+2. Program.cs:
+
+using System;
+using System.Drawing;
+
+namespace SystemDrawingTest
+{
+   class Program
+   {
+      static void Main(string[] args)
+      {
+         Image image = Image.FromFile("any.gif");
+         Console.WriteLine("Width = " + image.Width.ToString());
+         Console.WriteLine("Height = " + image.Height.ToString());
+         Console.WriteLine("Before Dispose");
+         image.Dispose();
+         Console.WriteLine("Finished");
+      }
+   }
+}
+
+
+3.
+mcs -r:System.Drawing Program.cs
+mono Program.exe
+
+
+Actual Results:
+
+*** glibc detected *** mono: double free or corruption (!prev): 
+0x09bc0d20 ***
+======= Backtrace: =========
+/lib/libc.so.6[0x2bff18]
+/lib/libc.so.6(__libc_free+0x78)[0x2c33ef]
+/usr/lib/libgdiplus.so(GdipFree+0x1d)[0x87aacd]
+/usr/lib/libgdiplus.so(gdip_bitmap_dispose+0x2f)[0x8764df]
+/usr/lib/libgdiplus.so(GdipDisposeImage+0x169)[0x88ecc9]
+...
+=================================================================
+Got a SIGABRT while executing native code. This usually indicates
+a fatal error in the mono runtime or one of the native libraries
+used by your application.
+=================================================================
+Stacktrace:
+  at (wrapper managed-to-native) System.Drawing.GDIPlus.GdipDisposeImage 
+(intptr) <0x00004>
+  at (wrapper managed-to-native) System.Drawing.GDIPlus.GdipDisposeImage 
+(intptr) <0xffffffff>
+  at System.Drawing.Image.Dispose (bool) <0x00019>
+  at System.Drawing.Image.Dispose () <0x0000d>
+  at (wrapper remoting-invoke-with-check) System.Drawing.Image.Dispose () 
+<0xffffffff>
+  at SystemDrawingTest.Program.Main (string[]) <0x00095>
+  at (wrapper runtime-invoke) System.Object.runtime_invoke_void_string[] 
+(object,intptr,intptr,intptr) <0xffffffff>
+
+
+
+Expected Results:
+
+Dispose() method works fine if Image.FromFile() is loaded with a JPG or 
+PNG.
+
+
+How often does this happen? 
+
+Always
+
+Additional Information:


More information about the mono-bugs mailing list