This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/9.0.x by this push: new 5eca4adace Align with 11.0.x and 10.1.x 5eca4adace is described below commit 5eca4adace93e7e009ddc74e7b0f0c88298ba24e Author: Mark Thomas <ma...@apache.org> AuthorDate: Thu Jun 1 21:10:33 2023 +0100 Align with 11.0.x and 10.1.x --- java/org/apache/catalina/connector/CoyoteAdapter.java | 5 ++++- .../apache/catalina/connector/CoyoteInputStream.java | 2 ++ .../apache/catalina/connector/CoyoteOutputStream.java | 2 ++ java/org/apache/catalina/connector/Response.java | 18 +++++------------- java/org/apache/catalina/connector/ResponseFacade.java | 5 ++--- 5 files changed, 15 insertions(+), 17 deletions(-) diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java b/java/org/apache/catalina/connector/CoyoteAdapter.java index 6693d9cee7..c0eb3307cd 100644 --- a/java/org/apache/catalina/connector/CoyoteAdapter.java +++ b/java/org/apache/catalina/connector/CoyoteAdapter.java @@ -890,7 +890,10 @@ public class CoyoteAdapter implements Adapter { req.decodedURI().toBytes(); ByteChunk uriBC = req.decodedURI().getByteChunk(); - int semicolon = uriBC.indexOf(';', 0); + // The first character must always be '/' so start search at position 1. + // If the first character is ';' the URI will be rejected at the + // normalization stage + int semicolon = uriBC.indexOf(';', 1); // Performance optimisation. Return as soon as it is known there are no // path parameters; if (semicolon == -1) { diff --git a/java/org/apache/catalina/connector/CoyoteInputStream.java b/java/org/apache/catalina/connector/CoyoteInputStream.java index 4432eb5a89..c24ccab8ca 100644 --- a/java/org/apache/catalina/connector/CoyoteInputStream.java +++ b/java/org/apache/catalina/connector/CoyoteInputStream.java @@ -21,6 +21,7 @@ import java.nio.ByteBuffer; import java.security.AccessController; import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; +import java.util.Objects; import javax.servlet.ReadListener; import javax.servlet.ServletInputStream; @@ -145,6 +146,7 @@ public class CoyoteInputStream extends ServletInputStream { * @throws IOException if an input or output exception has occurred */ public int read(final ByteBuffer b) throws IOException { + Objects.requireNonNull(b); checkNonBlockingRead(); if (SecurityUtil.isPackageProtectionEnabled()) { diff --git a/java/org/apache/catalina/connector/CoyoteOutputStream.java b/java/org/apache/catalina/connector/CoyoteOutputStream.java index 71fbe7d18f..a6cb729b9e 100644 --- a/java/org/apache/catalina/connector/CoyoteOutputStream.java +++ b/java/org/apache/catalina/connector/CoyoteOutputStream.java @@ -18,6 +18,7 @@ package org.apache.catalina.connector; import java.io.IOException; import java.nio.ByteBuffer; +import java.util.Objects; import javax.servlet.ServletOutputStream; import javax.servlet.WriteListener; @@ -101,6 +102,7 @@ public class CoyoteOutputStream extends ServletOutputStream { public void write(ByteBuffer from) throws IOException { + Objects.requireNonNull(from); boolean nonBlocking = checkNonBlockingWrite(); ob.write(from); if (nonBlocking) { diff --git a/java/org/apache/catalina/connector/Response.java b/java/org/apache/catalina/connector/Response.java index eea0919c8d..3f5e2a0b45 100644 --- a/java/org/apache/catalina/connector/Response.java +++ b/java/org/apache/catalina/connector/Response.java @@ -769,10 +769,10 @@ public class Response implements HttpServletResponse { * Overrides the name of the character encoding used in the body of the request. This method must be called prior to * reading request parameters or reading input using getReader(). * - * @param charset String containing the name of the character encoding. + * @param encoding String containing the name of the character encoding. */ @Override - public void setCharacterEncoding(String charset) { + public void setCharacterEncoding(String encoding) { if (isCommitted()) { return; @@ -790,12 +790,12 @@ public class Response implements HttpServletResponse { } try { - getCoyoteResponse().setCharacterEncoding(charset); + getCoyoteResponse().setCharacterEncoding(encoding); } catch (UnsupportedEncodingException e) { - log.warn(sm.getString("coyoteResponse.encoding.invalid", charset), e); + log.warn(sm.getString("coyoteResponse.encoding.invalid", encoding), e); return; } - if (charset == null) { + if (encoding == null) { isCharacterEncodingSet = false; } else { isCharacterEncodingSet = true; @@ -1284,14 +1284,6 @@ public class Response implements HttpServletResponse { } - /** - * Send a temporary redirect to the specified redirect location URL. - * - * @param location Location URL to redirect to - * - * @exception IllegalStateException if this response has already been committed - * @exception IOException if an input/output error occurs - */ @Override public void sendRedirect(String location) throws IOException { sendRedirect(location, SC_FOUND); diff --git a/java/org/apache/catalina/connector/ResponseFacade.java b/java/org/apache/catalina/connector/ResponseFacade.java index 5965979f56..ba6abba030 100644 --- a/java/org/apache/catalina/connector/ResponseFacade.java +++ b/java/org/apache/catalina/connector/ResponseFacade.java @@ -114,7 +114,6 @@ public class ResponseFacade implements HttpServletResponse { // ----------------------------------------------- Class/Instance Variables - /** * The string manager for this package. */ @@ -473,9 +472,9 @@ public class ResponseFacade implements HttpServletResponse { @Override - public void setCharacterEncoding(String arg0) { + public void setCharacterEncoding(String encoding) { checkFacade(); - response.setCharacterEncoding(arg0); + response.setCharacterEncoding(encoding); } @Override --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org