Axis takes 100% CPU, infinite loop in the QueryStringParser
-----------------------------------------------------------

                 Key: AXIS2-5078
                 URL: https://issues.apache.org/jira/browse/AXIS2-5078
             Project: Axis2
          Issue Type: Bug
          Components: kernel
    Affects Versions: 1.5.5
         Environment: Mac, Linux
            Reporter: Jonathan Ducharme


Hi, 

My problem is basically https://issues.apache.org/jira/browse/AXIS2-4736, but 
since it was closed without the step to reproduce, I've open a new issue, and 
will give you the code I made to test it.

Yes it's a malformed URL, but I think it's still an issue.

    public static void main( String[] args ) {
        QueryStringParser parser = new QueryStringParser("&gsdfgfds");
        parser.search( new ArrayList<String>() );
        System.out.println("done");
    }

That being said, what I did is change the next() method by adding a check on 
the idx:

    public boolean next() {
        int len = queryString.length();
        if (paramEnd == len) {
            return false;
        }
        paramBegin = paramEnd == 0 ? 0 : paramEnd+1;
        int idx = queryString.indexOf('&', paramBegin);
        
        if(idx == 0) {
                return false;
        }
        
        paramEnd = idx == -1 ? len : idx;
        idx = queryString.indexOf('=', paramBegin);
        paramNameEnd = idx == -1 || idx > paramEnd ? paramEnd : idx;
        paramName = null;
        paramValue = null;
        return true;
    }

For our current needs it work, might not be the best solution, but for what we 
had to do it worked pretty well. This also pass the QueryStringParserTest that 
axis has.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to