[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mono-patches
Subject:    [Mono-patches] r45257 - in trunk/mcs/class/System.XML: System.Xml
From:       "Atsushi Enomoto (ginga () kit ! hi-ho ! ne ! jp)" <atsushi () mono-cvs ! ximian ! com>
Date:       2005-05-31 11:41:55
Message-ID: 20050531114155.9925994765 () mono-cvs ! ximian ! com
[Download RAW message or body]

Author: atsushi
Date: 2005-05-31 07:41:54 -0400 (Tue, 31 May 2005)
New Revision: 45257

Modified:
   trunk/mcs/class/System.XML/System.Xml/ChangeLog
   trunk/mcs/class/System.XML/System.Xml/DTDValidatingReader.cs
   trunk/mcs/class/System.XML/Test/System.Xml/ChangeLog
   trunk/mcs/class/System.XML/Test/System.Xml/XmlValidatingReaderTests.cs
Log:
2005-05-31  Atsushi Enomoto <atsushi@ximian.com>

	* DTDValidatingReader.cs : Last BaseURI exposed this hidden bug via
	  sys.security tests.

	* XmlValidatingReaderTests.cs : added ResolveEntityAndBaseURI() which
	  is imported from sys.security.



Modified: trunk/mcs/class/System.XML/System.Xml/ChangeLog
===================================================================
--- trunk/mcs/class/System.XML/System.Xml/ChangeLog	2005-05-31 11:28:10 UTC (rev \
                45256)
+++ trunk/mcs/class/System.XML/System.Xml/ChangeLog	2005-05-31 11:41:54 UTC (rev \
45257) @@ -1,3 +1,8 @@
+2005-05-31  Atsushi Enomoto <atsushi@ximian.com>
+
+	* DTDValidatingReader.cs : Last BaseURI exposed this hidden bug via
+	  sys.security tests.
+
 2005-05-30  Atsushi Enomoto <atsushi@ximian.com>
 
 	* DTDObjectModel.cs : in DTDEntityBase.Resolve() don't overwrite

Modified: trunk/mcs/class/System.XML/System.Xml/DTDValidatingReader.cs
===================================================================
--- trunk/mcs/class/System.XML/System.Xml/DTDValidatingReader.cs	2005-05-31 11:28:10 \
                UTC (rev 45256)
+++ trunk/mcs/class/System.XML/System.Xml/DTDValidatingReader.cs	2005-05-31 11:41:54 \
UTC (rev 45257) @@ -950,7 +950,7 @@
 
 			// MS.NET 1.x ignores undeclared entity reference here..
 			if (entity != null && entity.SystemId != null) {
-				Uri baseUri = entity.BaseURI == null ? null : new Uri (entity.BaseURI);
+				Uri baseUri = entity.BaseURI == String.Empty ? null : new Uri (entity.BaseURI);
 				Stream stream = resolver.GetEntity (resolver.ResolveUri (baseUri, \
                entity.SystemId), null, typeof (Stream)) as Stream;
 				nextEntityReader = new XmlTextReader (stream, xmlReaderNodeType, ParserContext);
 			} else {

Modified: trunk/mcs/class/System.XML/Test/System.Xml/ChangeLog
===================================================================
--- trunk/mcs/class/System.XML/Test/System.Xml/ChangeLog	2005-05-31 11:28:10 UTC (rev \
                45256)
+++ trunk/mcs/class/System.XML/Test/System.Xml/ChangeLog	2005-05-31 11:41:54 UTC (rev \
45257) @@ -1,3 +1,8 @@
+2005-05-31  Atsushi Enomoto <atsushi@ximian.com>
+
+	* XmlValidatingReaderTests.cs : added ResolveEntityAndBaseURI() which
+	  is imported from sys.security.
+
 2005-05-25  Andrew Skiba  <andrews@mainsoft.com>
 
 	* W3C : directory added

Modified: trunk/mcs/class/System.XML/Test/System.Xml/XmlValidatingReaderTests.cs
===================================================================
--- trunk/mcs/class/System.XML/Test/System.Xml/XmlValidatingReaderTests.cs	2005-05-31 \
                11:28:10 UTC (rev 45256)
+++ trunk/mcs/class/System.XML/Test/System.Xml/XmlValidatingReaderTests.cs	2005-05-31 \
11:41:54 UTC (rev 45257) @@ -7,6 +7,7 @@
 // (C)2003 Atsushi Enomoto
 //
 using System;
+using System.IO;
 using System.Xml;
 using System.Xml.Schema;
 using NUnit.Framework;
@@ -814,5 +815,42 @@
 			r.Read ();
 			AssertEquals (refOut, r.ReadOuterXml ());
 		}
+
+		[Test]
+		// imported testcase from sys.security which had regression.
+		public void ResolveEntityAndBaseURI ()
+		{
+			try {
+				using (TextWriter w = File.CreateText ("world.txt")) {
+					w.WriteLine ("world");
+				}
+
+				string xml =  "<!DOCTYPE doc [\n" +
+					"<!ATTLIST doc attrExtEnt ENTITY #IMPLIED>\n" +
+					"<!ENTITY ent1 \"Hello\">\n" +
+					"<!ENTITY ent2 SYSTEM \"world.txt\">\n" +
+					"<!ENTITY entExt SYSTEM \"earth.gif\" NDATA gif>\n" +
+					"<!NOTATION gif SYSTEM \"viewgif.exe\">\n" +
+					"]>\n" +
+					"<doc attrExtEnt=\"entExt\">\n" +
+					"   &ent1;, &ent2;!\n" +
+					"</doc>\n" +
+					"\n" +
+					"<!-- Let world.txt contain \"world\" (excluding the quotes) -->\n";
+
+				XmlValidatingReader xvr =
+					new XmlValidatingReader (
+					xml, XmlNodeType.Document, null);
+				xvr.ValidationType = ValidationType.None;
+				xvr.EntityHandling =
+					EntityHandling.ExpandCharEntities;
+				XmlDocument doc = new XmlDocument ();
+				doc.Load (xvr);
+
+			} finally {
+				if (File.Exists ("world.txt"))
+					File.Delete ("world.txt");
+			}
+		}
 	}
 }

_______________________________________________
Mono-patches maillist  -  Mono-patches@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-patches


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic