Author: fschumacher
Date: Sat Jul 30 10:17:17 2016
New Revision: 1754613

URL: http://svn.apache.org/viewvc?rev=1754613&view=rev
Log:
Fix resource leak in WebDAV servlet. Based on patch by Coty Sutherland.

Fixes https://bz.apache.org/bugzilla/show_bug.cgi?id=59859

Modified:
    tomcat/trunk/java/org/apache/catalina/servlets/LocalStrings.properties
    tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/servlets/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/servlets/LocalStrings.properties?rev=1754613&r1=1754612&r2=1754613&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/servlets/LocalStrings.properties 
(original)
+++ tomcat/trunk/java/org/apache/catalina/servlets/LocalStrings.properties Sat 
Jul 30 10:17:17 2016
@@ -20,6 +20,7 @@ defaultServlet.missingResource=The reque
 defaultservlet.skipfail=Only skipped [{0}] bytes when [{1}] were requested
 webdavservlet.jaxpfailed=JAXP initialization failed
 webdavservlet.enternalEntityIgnored=The request included a reference to an 
external entity with PublicID {0} and SystemID {1} which was ignored
+webdavservlet.inputstreamclosefail=Failed to close the inputStream of [{0}]
 directory.filename=Filename
 directory.lastModified=Last Modified
 directory.parent=Up To {0}

Modified: tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java?rev=1754613&r1=1754612&r2=1754613&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java Sat Jul 
30 10:17:17 2016
@@ -17,6 +17,7 @@
 package org.apache.catalina.servlets;
 
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.StringReader;
 import java.io.StringWriter;
 import java.io.Writer;
@@ -1709,11 +1710,15 @@ public class WebdavServlet
                     }
                 }
             }
-            if (!resources.write(dest, sourceResource.getInputStream(),
-                    false)) {
-                errorList.put(source,
-                        
Integer.valueOf(WebdavStatus.SC_INTERNAL_SERVER_ERROR));
-                return false;
+            try (InputStream is = sourceResource.getInputStream()) {
+                if (!resources.write(dest, is,
+                        false)) {
+                    errorList.put(source,
+                            
Integer.valueOf(WebdavStatus.SC_INTERNAL_SERVER_ERROR));
+                    return false;
+                }
+            } catch (IOException e) {
+                log(sm.getString("webdavservlet.inputstreamclosefail", 
source), e);
             }
         } else {
             errorList.put(source,

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1754613&r1=1754612&r2=1754613&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Sat Jul 30 10:17:17 2016
@@ -84,6 +84,10 @@
         When retrieving an object via a <code>ResourceLink</code>, ensure that
         the object obtained is of the expected type. (markt)
       </add>
+      <fix>
+        <bug>59859</bug>: Fix resource leak in WebDAV servlet. Based on patch 
by
+        Coty Sutherland. (fschumacher)
+      </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