This is an automated email from the ASF dual-hosted git repository.

rmaucher pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/10.1.x by this push:
     new 0e53a89692 Minor code review fixes
0e53a89692 is described below

commit 0e53a896925b5ca9bfbc7998679236eba2f2e810
Author: remm <[email protected]>
AuthorDate: Sat Jun 13 00:14:49 2026 +0200

    Minor code review fixes
---
 .../apache/catalina/realm/MessageDigestCredentialHandler.java | 10 +++++++++-
 java/org/apache/catalina/realm/RealmBase.java                 |  6 ++++--
 java/org/apache/catalina/servlets/CGIServlet.java             |  6 ++----
 java/org/apache/catalina/servlets/WebdavServlet.java          | 10 +++++-----
 .../org/apache/catalina/ssi/ByteArrayServletOutputStream.java | 11 +----------
 java/org/apache/catalina/ssi/SSIConditional.java              |  3 +++
 java/org/apache/catalina/ssi/SSIExec.java                     |  3 +++
 java/org/apache/catalina/ssi/SSIServletExternalResolver.java  |  3 +--
 java/org/apache/catalina/util/SessionIdGeneratorBase.java     |  3 +++
 9 files changed, 31 insertions(+), 24 deletions(-)

diff --git a/java/org/apache/catalina/realm/MessageDigestCredentialHandler.java 
b/java/org/apache/catalina/realm/MessageDigestCredentialHandler.java
index b146c260b7..8a93442103 100644
--- a/java/org/apache/catalina/realm/MessageDigestCredentialHandler.java
+++ b/java/org/apache/catalina/realm/MessageDigestCredentialHandler.java
@@ -154,10 +154,18 @@ public class MessageDigestCredentialHandler extends 
DigestCredentialHandlerBase
                 // Need to convert the salt to bytes to apply it to the user's
                 // digested password.
                 String serverDigestPlusSalt = storedCredentials.substring(6);
-                byte[] serverDigestPlusSaltBytes = 
Base64.getDecoder().decode(serverDigestPlusSalt);
+                byte[] serverDigestPlusSaltBytes = null;
+                try {
+                    serverDigestPlusSaltBytes = 
Base64.getDecoder().decode(serverDigestPlusSalt);
+                } catch (IllegalArgumentException e) {
+                    return false;
+                }
 
                 // Extract the first 20 bytes containing the SHA-1 digest
                 final int digestLength = 20;
+                if (serverDigestPlusSaltBytes.length < digestLength) {
+                    return false;
+                }
                 byte[] serverDigestBytes = new byte[digestLength];
                 System.arraycopy(serverDigestPlusSaltBytes, 0, 
serverDigestBytes, 0, digestLength);
 
diff --git a/java/org/apache/catalina/realm/RealmBase.java 
b/java/org/apache/catalina/realm/RealmBase.java
index 9c840d0793..1e2ab221ab 100644
--- a/java/org/apache/catalina/realm/RealmBase.java
+++ b/java/org/apache/catalina/realm/RealmBase.java
@@ -363,11 +363,13 @@ public abstract class RealmBase extends 
LifecycleMBeanBase implements Realm {
             return null;
         }
 
-        if (containerLog.isTraceEnabled()) {
+        Principal principal = getPrincipal(username);
+
+        if (principal != null && containerLog.isTraceEnabled()) {
             containerLog.trace(sm.getString("realmBase.authenticateSuccess", 
username));
         }
 
-        return getPrincipal(username);
+        return principal;
     }
 
 
diff --git a/java/org/apache/catalina/servlets/CGIServlet.java 
b/java/org/apache/catalina/servlets/CGIServlet.java
index 89ae52effd..3e9e9a61d7 100644
--- a/java/org/apache/catalina/servlets/CGIServlet.java
+++ b/java/org/apache/catalina/servlets/CGIServlet.java
@@ -1326,13 +1326,11 @@ public final class CGIServlet extends HttpServlet {
          * @param map Map to convert
          *
          * @return converted string array
-         *
-         * @exception NullPointerException if a hash key has a null value
          */
-        protected String[] mapToStringArray(Map<String,?> map) throws 
NullPointerException {
+        protected String[] mapToStringArray(Map<String,?> map) {
             List<String> list = new ArrayList<>(map.size());
             for (Entry<String,?> entry : map.entrySet()) {
-                list.add(entry.getKey() + "=" + entry.getValue().toString());
+                list.add(entry.getKey() + "=" + (entry.getValue() == null ? "" 
: entry.getValue().toString()));
             }
             return list.toArray(new String[0]);
         }
diff --git a/java/org/apache/catalina/servlets/WebdavServlet.java 
b/java/org/apache/catalina/servlets/WebdavServlet.java
index 738b184bb9..812ece3291 100644
--- a/java/org/apache/catalina/servlets/WebdavServlet.java
+++ b/java/org/apache/catalina/servlets/WebdavServlet.java
@@ -1458,8 +1458,11 @@ public class WebdavServlet extends DefaultServlet 
implements PeriodicEventListen
                 tv = tv.trim();
                 if (tv.startsWith("Second-")) {
                     try {
-                        lockDuration = 
Integer.parseInt(tv.substring("Second-".length()));
-                        break;
+                        int value = 
Integer.parseInt(tv.substring("Second-".length()));
+                        if (value > 0) {
+                            lockDuration = value;
+                            break;
+                        }
                     } catch (NumberFormatException e) {
                         // Try the next value if any
                     }
@@ -1469,9 +1472,6 @@ public class WebdavServlet extends DefaultServlet 
implements PeriodicEventListen
                 }
             }
         }
-        if (lockDuration == 0) {
-            lockDuration = DEFAULT_TIMEOUT;
-        }
         if (lockDuration > MAX_TIMEOUT) {
             lockDuration = MAX_TIMEOUT;
         }
diff --git a/java/org/apache/catalina/ssi/ByteArrayServletOutputStream.java 
b/java/org/apache/catalina/ssi/ByteArrayServletOutputStream.java
index d4a3ce9054..afa2a76b8b 100644
--- a/java/org/apache/catalina/ssi/ByteArrayServletOutputStream.java
+++ b/java/org/apache/catalina/ssi/ByteArrayServletOutputStream.java
@@ -62,23 +62,14 @@ public class ByteArrayServletOutputStream extends 
ServletOutputStream {
         buf.write(b);
     }
 
-    /**
-     * TODO SERVLET 3.1
-     */
     @Override
     public boolean isReady() {
-        // TODO Auto-generated method stub
-        return false;
+        return true;
     }
 
 
-    /**
-     * TODO SERVLET 3.1
-     */
     @Override
     public void setWriteListener(WriteListener listener) {
-        // TODO Auto-generated method stub
-
     }
 
 
diff --git a/java/org/apache/catalina/ssi/SSIConditional.java 
b/java/org/apache/catalina/ssi/SSIConditional.java
index 26bec49244..d122298265 100644
--- a/java/org/apache/catalina/ssi/SSIConditional.java
+++ b/java/org/apache/catalina/ssi/SSIConditional.java
@@ -134,6 +134,9 @@ public class SSIConditional implements SSICommand {
      * Returns the "expr" if the arg name is appropriate, otherwise returns 
null.
      */
     private String getExpression(String[] paramNames, String[] paramValues) {
+        if (paramNames.length == 0 || paramValues.length == 0) {
+            return null;
+        }
         if ("expr".equalsIgnoreCase(paramNames[0])) {
             return paramValues[0];
         }
diff --git a/java/org/apache/catalina/ssi/SSIExec.java 
b/java/org/apache/catalina/ssi/SSIExec.java
index 7309230bb7..4ce3552277 100644
--- a/java/org/apache/catalina/ssi/SSIExec.java
+++ b/java/org/apache/catalina/ssi/SSIExec.java
@@ -53,6 +53,9 @@ public class SSIExec implements SSICommand {
     public long process(SSIMediator ssiMediator, String commandName, String[] 
paramNames, String[] paramValues,
             PrintWriter writer) {
         long lastModified = 0;
+        if (paramNames.length == 0 || paramValues.length == 0) {
+            return 0;
+        }
         String configErrMsg = ssiMediator.getConfigErrMsg();
         String paramName = paramNames[0];
         String paramValue = paramValues[0];
diff --git a/java/org/apache/catalina/ssi/SSIServletExternalResolver.java 
b/java/org/apache/catalina/ssi/SSIServletExternalResolver.java
index 8df72cbd7e..18a784a3c7 100644
--- a/java/org/apache/catalina/ssi/SSIServletExternalResolver.java
+++ b/java/org/apache/catalina/ssi/SSIServletExternalResolver.java
@@ -375,8 +375,7 @@ public class SSIServletExternalResolver implements 
SSIExternalResolver {
         } else if (nameParts[0].equals("SERVER")) {
             if (nameParts[1].equals("ADDR")) {
                 retVal = req.getLocalAddr();
-            }
-            if (nameParts[1].equals("NAME")) {
+            } else if (nameParts[1].equals("NAME")) {
                 retVal = req.getServerName();
             } else if (nameParts[1].equals("PORT")) {
                 retVal = Integer.toString(req.getServerPort());
diff --git a/java/org/apache/catalina/util/SessionIdGeneratorBase.java 
b/java/org/apache/catalina/util/SessionIdGeneratorBase.java
index cd4a39bd60..cfd7366577 100644
--- a/java/org/apache/catalina/util/SessionIdGeneratorBase.java
+++ b/java/org/apache/catalina/util/SessionIdGeneratorBase.java
@@ -199,6 +199,9 @@ public abstract class SessionIdGeneratorBase extends 
LifecycleBase implements Se
      */
     @Override
     public void setSessionIdLength(int sessionIdLength) {
+        if (sessionIdLength < 2) {
+            return;
+        }
         this.sessionIdLength = sessionIdLength;
     }
 


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

Reply via email to