[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