enguer / xmlrpcnet

Automatically exported from code.google.com/p/xmlrpcnet
0 stars 0 forks source link

XmlRpcParser can get into an infinite loop in MoveToEndElement #110

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Call a server implementation with:
<?xml 
version="1.0"?><methodCall><methodName>method_name</methodName></methodCall>
Note, there are no spaces between tags.

When MoveToEndElement is called at the end of the ParseRequest method, the 
rdr.Depth and mcDepth are both 0. Because neither of the if conditions are met 
in the while loop, it loops continuously.

To fix this I wrapped the rdr.Read() call in an if:
if (!rdr.Read()) break;
I also added a new test at the start of the MoveToEndElement method:
if (rdr.Depth == mcDepth && rdr.NodeType == XmlNodeType.None)
    return true;

Original issue reported on code.google.com by laurence...@wyrm.org.uk on 8 Jan 2014 at 12:19