You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ol...@apache.org on 2004/02/26 21:25:56 UTC

cvs commit: jakarta-commons/httpclient/src/test/org/apache/commons/httpclient TestResponseHeaders.java

olegk       2004/02/26 12:25:55

  Modified:    httpclient/src/java/org/apache/commons/httpclient
                        HttpMethodBase.java
               httpclient/src/test/org/apache/commons/httpclient
                        TestResponseHeaders.java
  Log:
  PR #27237 (ArrayIndexOutOfBounds Exception on invalid content-length)
  
  Contributed by Oleg Kalnichevski
  Reviewed by Michael Becke
  
  Revision  Changes    Path
  1.200     +5 -5      jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpMethodBase.java
  
  Index: HttpMethodBase.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpMethodBase.java,v
  retrieving revision 1.199
  retrieving revision 1.200
  diff -u -r1.199 -r1.200
  --- HttpMethodBase.java	22 Feb 2004 18:08:45 -0000	1.199
  +++ HttpMethodBase.java	26 Feb 2004 20:25:55 -0000	1.200
  @@ -620,7 +620,7 @@
           if (headers.length > 1) {
               LOG.warn("Multiple content-length headers detected");
           }
  -        for (int i = headers.length - 1; i >= 0; i++) {
  +        for (int i = headers.length - 1; i >= 0; i--) {
               Header header = headers[i];
               try {
                   return Long.parseLong(header.getValue());
  
  
  
  1.14      +32 -4     jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestResponseHeaders.java
  
  Index: TestResponseHeaders.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestResponseHeaders.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- TestResponseHeaders.java	22 Feb 2004 18:08:49 -0000	1.13
  +++ TestResponseHeaders.java	26 Feb 2004 20:25:55 -0000	1.14
  @@ -189,6 +189,34 @@
           assertFalse(conn.isOpen());
       }
   
  +    public void testInvalidContentLength1() throws Exception {
  +        // test with connection header
  +        String headers = "HTTP/1.1 200 OK\r\n"
  +            + "Content-Length: 5\r\n"
  +            + "Content-Length: stuff\r\n"
  +            + "\r\n";
  +
  +        // test with connection header
  +        conn.addResponse(headers, "12345");
  +        GetMethod method = new GetMethod("/");
  +        client.executeMethod(method);
  +        assertEquals(5, method.getResponseContentLength()); 
  +    }
  +
  +    public void testInvalidContentLength2() throws Exception {
  +        // test with connection header
  +        String headers = "HTTP/1.1 200 OK\r\n"
  +            + "Content-Length: stuff\r\n"
  +            + "Content-Length: 5\r\n"
  +            + "\r\n";
  +
  +        // test with connection header
  +        conn.addResponse(headers, "12345");
  +        GetMethod method = new GetMethod("/");
  +        client.executeMethod(method);
  +        assertEquals(5, method.getResponseContentLength()); 
  +    }
  +
       public void testProxyNoContentLength() throws Exception {
           // test with proxy-connection header
           String headers =
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org