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

markt 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 8cc811c4bf Fix a potential NPE
8cc811c4bf is described below

commit 8cc811c4bfc4aec346d76e18b2c243f69739d6ec
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Mon Mar 31 16:33:58 2025 +0100

    Fix a potential NPE
---
 .../catalina/loader/WebappClassLoaderBase.java     |  4 ++--
 .../catalina/loader/TestWebappClassLoader.java     | 23 ++++++++++++++++++++++
 webapps/docs/changelog.xml                         |  4 ++++
 3 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/java/org/apache/catalina/loader/WebappClassLoaderBase.java 
b/java/org/apache/catalina/loader/WebappClassLoaderBase.java
index 424c294efa..4ce90f7d43 100644
--- a/java/org/apache/catalina/loader/WebappClassLoaderBase.java
+++ b/java/org/apache/catalina/loader/WebappClassLoaderBase.java
@@ -712,7 +712,7 @@ public abstract class WebappClassLoaderBase extends 
URLClassLoader
 
         URL url = null;
 
-        if (name.startsWith("/")) {
+        if (name == null || name.startsWith("/")) {
             return null;
         }
 
@@ -768,7 +768,7 @@ public abstract class WebappClassLoaderBase extends 
URLClassLoader
 
         LinkedHashSet<URL> result = new LinkedHashSet<>();
 
-        if (name.startsWith("/")) {
+        if (name == null || name.startsWith("/")) {
             return null;
         }
 
diff --git a/test/org/apache/catalina/loader/TestWebappClassLoader.java 
b/test/org/apache/catalina/loader/TestWebappClassLoader.java
index 14c96db3cf..ed3df9f562 100644
--- a/test/org/apache/catalina/loader/TestWebappClassLoader.java
+++ b/test/org/apache/catalina/loader/TestWebappClassLoader.java
@@ -187,4 +187,27 @@ public class TestWebappClassLoader extends TomcatBaseTest {
         URL u2 = cl.getResource("/org/apache/tomcat/Bug58096.java");
         Assert.assertNull(u2);
     }
+
+
+    @Test
+    public void testFindResourceNull() throws Exception {
+        Tomcat tomcat = getTomcatInstanceTestWebapp(false, true);
+
+        WebappClassLoaderBase cl = (WebappClassLoaderBase) ((Context) 
tomcat.getHost().findChildren()[0]).getLoader().getClassLoader();
+
+        URL u1 = cl.findResource(null);
+        Assert.assertNull(u1);
+    }
+
+
+    @Test
+    public void testFindResourceEmptyString() throws Exception {
+        Tomcat tomcat = getTomcatInstanceTestWebapp(false, true);
+
+        Context c = (Context) tomcat.getHost().findChildren()[0];
+        WebappClassLoaderBase cl = (WebappClassLoaderBase) 
c.getLoader().getClassLoader();
+
+        URL u1 = cl.findResource("");
+        Assert.assertNotNull(u1);
+    }
 }
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index d4671c75a7..604b52528e 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -220,6 +220,10 @@
         RewriteValve and document how <code>%nn</code> URL encoding may be used
         with rewrite rules. (markt)
       </fix>
+      <fix>
+        Fix a potential NPE when calling
+        <code>WebappClassLoaderBase.findResource(null)</code>. (markt)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Coyote">


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to