Mirek Hankus created WW-5276:
--------------------------------

             Summary: Cleanup method of request is not called
                 Key: WW-5276
                 URL: https://issues.apache.org/jira/browse/WW-5276
             Project: Struts 2
          Issue Type: Bug
    Affects Versions: 6.1.1
            Reporter: Mirek Hankus


After upgrading to 6.1.1  we have noticed that cleanup method of custom 
MultiPartRequest is not called by struts. 
 
 
It may be related to 
[https://github.com/apache/struts/commit/69102e907551a87335231656320c8484072bdecb]
 
as before variable "request" was overwritten with wrapped request and cleanup 
was called in finally section
 
After this commit new variable is created called "wrappedRequest", but cleanup 
is called only on original request, and new wrappedRequest is not cleaned up at 
all.
 
Below is respective code fragment
{code:java}
HttpServletRequest wrappedRequest = prepare.wrapRequest(request);
                    ActionMapping mapping = 
prepare.findActionMapping(wrappedRequest, response, true);
                    if (mapping == null) {
                        LOG.trace("Cannot find mapping for {}, passing to other 
filters", uri);
                        chain.doFilter(request, response);
                    } else {
                        LOG.trace("Found mapping {} for {}", mapping, uri);
                        execute.executeAction(wrappedRequest, response, 
mapping);
                    }
                }
            }
        } finally {
            prepare.cleanupRequest(request);
        }{code}
 
This bug causes a lot of resource problems, and can result in denial of service 
condition for application  (or making application not compliant - as sensitive 
information is not properly discarded).
 
 
 
 
 
 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to