Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Habersack <grendel@twistedcode.net>2015-12-11 00:01:52 +0300
committerMarek Habersack <grendel@twistedcode.net>2015-12-11 00:01:52 +0300
commit262b4ef73fe6a3a24b8cec48b4123abd5311c1c0 (patch)
tree4d9c2ed58b63f6b87cde125b2d78dc10e4032817 /mcs/class/System.XML/Test
parentc6d239fa790ef48d932d1243d002253101648f7f (diff)
Fix endless recursion in XmlCompiledTransform on mobile
One of the XmlCompiledTransform overloads called itself recursively, leading to either a stack overflow or segfault Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=36436
Diffstat (limited to 'mcs/class/System.XML/Test')
-rw-r--r--mcs/class/System.XML/Test/System.Xml.Xsl/XslCompiledTransformTests.cs26
1 files changed, 26 insertions, 0 deletions
diff --git a/mcs/class/System.XML/Test/System.Xml.Xsl/XslCompiledTransformTests.cs b/mcs/class/System.XML/Test/System.Xml.Xsl/XslCompiledTransformTests.cs
index aa333328d96..3ed7fc3a066 100644
--- a/mcs/class/System.XML/Test/System.Xml.Xsl/XslCompiledTransformTests.cs
+++ b/mcs/class/System.XML/Test/System.Xml.Xsl/XslCompiledTransformTests.cs
@@ -168,5 +168,31 @@ xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl='urn:schemas-micros
// Returns true on .NET and False on mono 2.10.2
Assert.IsTrue (xslCompiledTransform.OutputSettings.Indent, "#1");
}
+
+ [Test] // Bug 36436
+ public void TransformWithXmlDocument ()
+ {
+ XmlDocument doc = new XmlDocument ();
+ doc.LoadXml (@"<ROOT/>");
+ XmlDocument st = new XmlDocument ();
+ st.LoadXml (@"<?xml version=""1.0"" encoding=""utf-8""?>
+<xsl:stylesheet version=""1.0"" xmlns:vy=""Vineyard.Elements""
+ xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"" xmlns:xlink=""http://www.w3.org/1999/xlink"" xmlns:user=""http://www.mydomain.com/mynamespace"">
+ <xsl:output method=""xml""/>
+
+ <xsl:param name=""os"" select=""ios""/>
+
+ <xsl:template match=""/ROOT"" >
+ <xsl:copy/>
+</xsl:template>
+</xsl:stylesheet>");
+ XslCompiledTransform xsl = new XslCompiledTransform ();
+ xsl.Load (st);
+
+ XsltArgumentList args = new XsltArgumentList ();
+
+ MemoryStream mstr = new MemoryStream ();
+ xsl.Transform (doc, args, mstr);
+ }
}
}