[Mono-bugs] [Bug 50356][Maj] New - SoapSerializer.Deserialize kills the mono
bugzilla-daemon@bugzilla.ximian.com
bugzilla-daemon@bugzilla.ximian.com
Thu, 30 Oct 2003 12:10:21 -0500 (EST)
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 imitko@openlinksw.co.uk.
http://bugzilla.ximian.com/show_bug.cgi?id=50356
--- shadow/50356 2003-10-30 12:10:20.000000000 -0500
+++ shadow/50356.tmp.5988 2003-10-30 12:10:21.000000000 -0500
@@ -0,0 +1,102 @@
+Bug#: 50356
+Product: Mono/Runtime
+Version: unspecified
+OS:
+OS Details:
+Status: NEW
+Resolution:
+Severity: Unknown
+Priority: Major
+Component: misc
+AssignedTo: mono-bugs@ximian.com
+ReportedBy: imitko@openlinksw.co.uk
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL:
+Cc:
+Summary: SoapSerializer.Deserialize kills the mono
+
+Description of Problem:
+
+having a simple program that just do deserialization from SOAP1.1 message
+to an object make so mono to crash.
+
+
+Steps to reproduce the problem:
+1. compile the following C# program with
+
+mcs /r:System.Runtime.Serialization.Formatters.Soap /r:System.Management
+/r:System.Web des.cs
+---- des.cs ----
+using System;
+using System.IO;
+using System.Runtime.Serialization;
+using System.Runtime.Serialization.Formatters.Soap;
+using System.Xml.Serialization;
+
+public class des {
+ public static void Main (String[] argc)
+ {
+ //Console.WriteLine (argc[0]);
+ IFormatter fmt = new SoapFormatter();
+ System.IO.MemoryStream mem_strim = new System.IO.MemoryStream ();
+ byte [] barr;
+ String ent = argc[0];
+
+ barr = new byte[ent.Length];
+ for (int i = 0; i < ent.Length; i++)
+ {
+ barr[i] = (byte) Convert.ChangeType (ent[i], typeof (byte));
+ }
+
+ mem_strim.Seek(0, SeekOrigin.Begin);
+ mem_strim.Write (barr, 0, (int) barr.Length);
+ mem_strim.Seek(0, SeekOrigin.Begin);
+ Object org_obj = fmt.Deserialize(mem_strim);
+ }
+}
+
+
+2. have a soap message in a file req1.xml
+
+<SOAP-ENV:Envelope
+xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
+xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <SOAP-ENV:Body>
+ <m:echoString xmlns:m="http://soapinterop.org/"
+SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
+ </m:echoString>
+ </SOAP-ENV:Body>
+</SOAP-ENV:Envelope>
+
+
+
+3. run the program with soap message
+
+$ mono des.exe "`cat req1.xml`"
+
+** ERROR **: file appdomain.c: line 850
+(ves_icall_System_AppDomain_LoadAssembly): assertion failed: (assRef->name
+!= NULL)
+aborting...
+Killed
+
+
+Actual Results:
+
+ABORT
+
+
+Expected Results:
+
+return an object or error.
+
+How often does this happen?
+
+ALWAYS
+
+Additional Information:
+
+if content of the SOAP:body is empty the result is an runtime error.