[Mono-bugs] [Bug 333699] New: SecurityElement. FromString does not support character entity references

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Sun Oct 14 04:00:56 EDT 2007


https://bugzilla.novell.com/show_bug.cgi?id=333699

           Summary: SecurityElement.FromString does not support character
                    entity references
           Product: Mono: Class Libraries
           Version: 1.2
          Platform: Other
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: CORLIB
        AssignedTo: mono-bugs at ximian.com
        ReportedBy: gert.driesen at pandora.be
         QAContact: mono-bugs at ximian.com
          Found By: ---


SecurityElement.FromString is unable load XML containing character entity
references (eg. <).

Apparently, the SmallXmlParser which is used by SecurityElement.FromString to
parse the XML resolved character entity references and assigns the content to
SecurityElement.Text (which rejects '<', '>' characters).

To reproduce, compile and run the following code snippet:

using System;
using System.Security;

class Program
{
  static void Main ()
  {
    SecurityElement values = new SecurityElement ("values");

    SecurityElement infoValue = new SecurityElement ("value");
    infoValue.AddAttribute ("name", "string");
    infoValue.Text = SecurityElement.Escape ("<'Suds' & \"Soda\">!");
    values.AddChild (infoValue);

    SecurityElement sec = SecurityElement.FromString (values.ToString ());
    foreach (SecurityElement child in sec.Children)
      Console.WriteLine (child.Tag + " => " + child.Text);
  }
}

Expected result:

value => <'Suds' & "Soda">!

Actual result:

Unhandled Exception: System.Security.XmlSyntaxException: Invalid XML. --->
System.ArgumentException: Invalid XML string: <'Suds' & "Soda">!
  at System.Security.SecurityElement.set_Text (System.String value) [0x00000] 
  at Mono.Xml.SecurityParser.OnChars (System.String ch) [0x00000] 
  at Mono.Xml.SmallXmlParser.HandleBufferedContent () [0x00000] 
  at Mono.Xml.SmallXmlParser.ReadContent () [0x00000] 
  at Mono.Xml.SmallXmlParser.Parse (System.IO.TextReader input, IContentHandler
handler) [0x00000] 
  at Mono.Xml.SecurityParser.LoadXml (System.String xml) [0x00000] 
  at System.Security.SecurityElement.FromString (System.String xml) [0x00000]
--- End of inner exception stack trace ---

  at System.Security.SecurityElement.FromString (System.String xml) [0x00000] 
  at Program.Main () [0x00000]


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the mono-bugs mailing list