Skip to content

Breaking issue in 1.8.27+ #49

@mkucera1

Description

@mkucera1

Starting in version 1.8.27 (and also confirmed in 1.8.28), I'm getting an out of memory exception using the SgmlReader.

Code looks like this:

` var sgml = new SgmlReader { DocType = "HTML", InputStream = new StringReader(input) };
using (var sw = new StringWriter())
{
using (var xw = new XmlTextWriter(sw) { Indentation = 2, Formatting = Formatting.Indented })
{
sgml.Read();
while (!sgml.EOF)
{
xw.WriteNode(sgml, true);
}
}

            return sw.ToString();
        }

and input is a very simple HTML document that contains a HTML table, form and a validation script like this:

<!DOCTYPE html><html><head><title>Optin Form Preview</title><script type="text/javascript">
		String.prototype.trim = function() {
		return this.replace(/^\s+|\s+$/g, "");
	};

	function validate1() {
		var isValid = true;
		var anyChecked = false;
		var errorString = "";
		var x = document.SubscribeForm1;

		if (x.field1.value.trim() == "") {
			errorString = errorString + "Email Address\n";
			isValid = false;
		}

		if (isValid) {
			return true;
		}
		else {
			alert("The following fields are required:\n\n" + errorString);
			return false;
		}
	}
	
</script></head><body><form id="SubscribeForm1" name="SubscribeForm1" method="post" action="https://Mysite.com/Pages/OptIn.aspx?ghff34ghj=6|8653|6|Snyfr&wdmdk=L2agP2OZnCtHYWCPLt2yWQ&sysid=1" onsubmit="return validate1();"><table><tr><td align="left" valign="top">Email Address</td><td align="left" valign="top"><input type="text" name="field1" /></td></tr><tr><td align="left" valign="top">First Name</td><td align="left" valign="top"><input type="text" name="field3" /></td></tr><tr><td align="left" valign="top">Last Name</td><td align="left" valign="top"><input type="text" name="field4" /></td></tr><tr><td align="left" valign="top">Address Line 1</td><td align="left" valign="top"><input type="text" name="field5" /></td></tr><tr><td align="left" valign="top">Address Line 2</td><td align="left" valign="top"><input type="text" name="field6" /></td></tr><tr><td align="left" valign="top">City</td><td align="left" valign="top"><input type="text" name="field7" /></td></tr><tr><td align="left" valign="top">State</td><td align="left" valign="top"><input type="text" name="field8" /></td></tr><tr><td align="left" valign="top">Zip</td><td align="left" valign="top"><input type="text" name="field9" /></td></tr><tr><td align="left" valign="top">Zip+4</td><td align="left" valign="top"><input type="text" name="field10" /></td></tr><tr><td align="left" valign="top">Phone Number</td><td align="left" valign="top"><input type="text" name="field11" /></td></tr><tr><td align="left" valign="top">Mobile Phone Number</td><td align="left" valign="top"><input type="text" name="field12" /></td></tr><tr><td align="left" valign="top">Country</td><td align="left" valign="top"><input type="text" name="field13" /></td></tr><tr><td align="left" valign="top">MR Action Date</td><td align="left" valign="top"><input type="text" name="field28" /></td></tr><tr><td align="left" valign="top">MR Source</td><td align="left" valign="top"><input type="text" name="field29" /></td></tr><tr><td align="left" valign="top">MR Message ID</td><td align="left" valign="top"><input type="text" name="field30" /></td></tr><tr><td align="left" valign="top">via List</td><td align="left" valign="top"><input type="text" name="field31" /></td></tr><tr><td align="left" valign="top">MR Form Title</td><td align="left" valign="top"><input type="text" name="field32" /></td></tr><tr><td align="left" valign="top">Lockerdome Client ID</td><td align="left" valign="top"><input type="text" name="field33" /></td></tr><tr><td align="left" valign="top">EWLMA_Date</td><td align="left" valign="top"><input type="text" name="field34" /></td></tr><tr><td align="left" valign="top">utm_source</td><td align="left" valign="top"><input type="text" name="field35" /></td></tr><tr><td align="left" valign="top">utm_medium</td><td align="left" valign="top"><input type="text" name="field36" /></td></tr><tr><td align="left" valign="top">utm_campaign</td><td align="left" valign="top"><input type="text" name="field37" /></td></tr><tr><td align="left" valign="top">utm_content</td><td align="left" valign="top"><input type="text" name="field38" /></td></tr><tr><td align="left" valign="top">utm_term</td><td align="left" valign="top"><input type="text" name="field39" /></td></tr><tr><td align="left" valign="top">Inception Message ID</td><td align="left" valign="top"><input type="text" name="field40" /></td></tr><tr><td align="left" valign="top" colspan="2"><input type="submit" name="submit" value="Submit"/></td></tr></table></form></body></html>

In 1.8.26 this works perfectly and executes in not time at all. in 1.8.27 and beyond this takes 30+ seconds and then throws an out of memory exception.

Please advise.
-Mark

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions