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

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


The following commit(s) were added to refs/heads/main by this push:
     new c81c9de1f4 Fix a few more CodeQL issues
c81c9de1f4 is described below

commit c81c9de1f4e7aad94a6ad2c88eb8a1312a14b6a2
Author: remm <[email protected]>
AuthorDate: Wed May 27 16:49:47 2026 +0200

    Fix a few more CodeQL issues
    
    On second review ...
    Co authored with OpenCode.
---
 java/org/apache/catalina/servlets/CGIServlet.java              | 10 +++++++++-
 java/org/apache/catalina/servlets/LocalStrings.properties      |  1 +
 .../apache/catalina/tribes/membership/McastServiceImpl.java    |  2 +-
 java/org/apache/tomcat/util/digester/Digester.java             |  8 +++++---
 java/org/apache/tomcat/util/modeler/LocalStrings.properties    |  1 +
 java/org/apache/tomcat/util/modeler/Registry.java              |  3 +++
 6 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/java/org/apache/catalina/servlets/CGIServlet.java 
b/java/org/apache/catalina/servlets/CGIServlet.java
index 0e860352c6..227584d75b 100644
--- a/java/org/apache/catalina/servlets/CGIServlet.java
+++ b/java/org/apache/catalina/servlets/CGIServlet.java
@@ -1401,7 +1401,7 @@ public final class CGIServlet extends HttpServlet {
             Runtime rt;
             BufferedReader cgiHeaderReader = null;
             InputStream cgiOutput = null;
-            BufferedReader commandsStdErr;
+            BufferedReader commandsStdErr = null;
             Thread errReaderThread = null;
             BufferedOutputStream commandsStdIn;
             Process proc = null;
@@ -1531,6 +1531,14 @@ public final class CGIServlet extends HttpServlet {
                         
log.warn(sm.getString("cgiServlet.runOutputStreamFail"), ioe);
                     }
                 }
+                // Close the error stream reader if used
+                if (commandsStdErr != null) {
+                    try {
+                        commandsStdErr.close();
+                    } catch (IOException ioe) {
+                        
log.warn(sm.getString("cgiServlet.runStdErrReaderFail"), ioe);
+                    }
+                }
                 // Make sure the error stream reader has finished
                 if (errReaderThread != null) {
                     try {
diff --git a/java/org/apache/catalina/servlets/LocalStrings.properties 
b/java/org/apache/catalina/servlets/LocalStrings.properties
index 9060ddf340..2628a1e8e2 100644
--- a/java/org/apache/catalina/servlets/LocalStrings.properties
+++ b/java/org/apache/catalina/servlets/LocalStrings.properties
@@ -36,6 +36,7 @@ cgiServlet.runReaderInterrupt=Interrupted waiting for stderr 
reader thread
 cgiServlet.runStdErr=stderr line: [{0}]
 cgiServlet.runStdErrCount=Received [{0}] lines on stderr
 cgiServlet.runStdErrFail=I/O problems with stderr
+cgiServlet.runStdErrReaderFail=I/O problems closing stderr reader
 
 defaultServlet.blockExternalEntity=Blocked access to external entity with 
publicId [{0}] and systemId [{0}]
 defaultServlet.blockExternalEntity2=Blocked access to external entity with 
name [{0}], publicId [{1}], baseURI [{2}] and systemId [{3}]
diff --git a/java/org/apache/catalina/tribes/membership/McastServiceImpl.java 
b/java/org/apache/catalina/tribes/membership/McastServiceImpl.java
index fde65f96c3..c5142e94a8 100644
--- a/java/org/apache/catalina/tribes/membership/McastServiceImpl.java
+++ b/java/org/apache/catalina/tribes/membership/McastServiceImpl.java
@@ -810,7 +810,7 @@ public class McastServiceImpl extends 
MembershipProviderBase {
                     if (log.isInfoEnabled()) {
                         log.info(sm.getString("mcastServiceImpl.recovery"));
                     }
-                    if (stopService() & startService()) {
+                    if (stopService() && startService()) {
                         success = true;
                         if (log.isInfoEnabled()) {
                             
log.info(sm.getString("mcastServiceImpl.recovery.successful"));
diff --git a/java/org/apache/tomcat/util/digester/Digester.java 
b/java/org/apache/tomcat/util/digester/Digester.java
index 46dac829e6..4155363bf1 100644
--- a/java/org/apache/tomcat/util/digester/Digester.java
+++ b/java/org/apache/tomcat/util/digester/Digester.java
@@ -1596,9 +1596,11 @@ public class Digester extends DefaultHandler2 {
      */
     public Object parse(File file) throws IOException, SAXException {
         configure();
-        InputSource input = new InputSource(new FileInputStream(file));
-        input.setSystemId("file://" + file.getAbsolutePath());
-        getXMLReader().parse(input);
+        try (FileInputStream fis = new FileInputStream(file)) {
+            InputSource input = new InputSource(fis);
+            input.setSystemId("file://" + file.getAbsolutePath());
+            getXMLReader().parse(input);
+        }
         return root;
     }
 
diff --git a/java/org/apache/tomcat/util/modeler/LocalStrings.properties 
b/java/org/apache/tomcat/util/modeler/LocalStrings.properties
index e040f5d871..ca56be535e 100644
--- a/java/org/apache/tomcat/util/modeler/LocalStrings.properties
+++ b/java/org/apache/tomcat/util/modeler/LocalStrings.properties
@@ -41,6 +41,7 @@ registry.cannotAccessRegistry=Guard object [{0}] does not 
allow access to the re
 registry.createdServer=Created MBeanServer
 registry.existingServer=Using existing MBeanServer
 registry.initError=Error initializing [{0}]
+registry.invalidArguments=Invalid arguments, bean and beanClass cannot both be 
null
 registry.invalidSource=Invalid source specified, must be either URL, File, 
Class or InputStream
 registry.loadError=Error loading descriptors from [{0}]
 registry.noDisable=The MBean registry cannot be disabled because it has 
already been initialised
diff --git a/java/org/apache/tomcat/util/modeler/Registry.java 
b/java/org/apache/tomcat/util/modeler/Registry.java
index b0cf2ef2ec..7d9799dcdc 100644
--- a/java/org/apache/tomcat/util/modeler/Registry.java
+++ b/java/org/apache/tomcat/util/modeler/Registry.java
@@ -482,6 +482,9 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
         }
 
         if (type == null) {
+            if (beanClass == null) {
+                throw new 
IllegalArgumentException(sm.getString("registry.invalidArguments"));
+            }
             type = beanClass.getName();
         }
 


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

Reply via email to