DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=28674>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=28674

ArrayOutBoundException in CoyoteAdapter.normalize

           Summary: ArrayOutBoundException in CoyoteAdapter.normalize
           Product: Tomcat 5
           Version: Nightly Build
          Platform: All
        OS/Version: All
            Status: UNCONFIRMED
          Severity: Major
          Priority: Other
         Component: Connector:Coyote
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


TestCase:
  1. get tomcat 5 release -> tested cvs, 5.0.19
  2. unpack and start it
  3. telnet localhost 8080
  4. enter "GET /jsp-examples/.. HTTP/1.0\n\n
  5. see exception in catalina.out/console

StackTrace:

SCHWERWIEGEND: An exception or error occurred in the container during the
request processing
java.lang.ArrayIndexOutOfBoundsException: 16
        at org.apache.coyote.tomcat5.CoyoteAdapter.normalize(CoyoteAdapter.java:560)
        at
org.apache.coyote.tomcat5.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:283)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:204)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:833)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:732)
        at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:619)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:688)
        at java.lang.Thread.run(Thread.java:536)


Java Code from CoyoteAdapter:  

        // If the URI ends with "/." or "/..", then we append an extra "/"
        // Note: It is possible to extend the URI by 1 without any side effect
        // as the next character is a non-significant WS.
        if (((end - start) > 2) && (b[end - 1] == (byte) '.')) {
            if ((b[end - 2] == (byte) '/')
                || ((b[end - 2] == (byte) '.')
                    && (b[end - 3] == (byte) '/'))) {
                b[end] = (byte) '/'; <-- Exception occurs here b.length <= end
                end++;
            }
        }

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to