Skip to content

XmlRpcParser can get into an infinite loop in MoveToEndElement #110

Description

@GoogleCodeExporter
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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions