Fix: Ensure MultipartForm is properly restored to the original request #777
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What type of PR is this? (check all applicable)
Description
This PR fixes an issue related to the shallow copy of the HTTP request (
req
), which prevents the proper cleanup of temporary files created byMultipartForm
. The shallow copy causesreq.MultipartForm
to be modified without reflecting these changes back to the original request (originReq
), leading to the failure to release temporary files.To resolve this, a deferred function has been added to ensure that
req.MultipartForm
is correctly restored tooriginReq
at the end of the request handling. This will allow thenet/http
server to properly release any temporary files associated with theMultipartForm
.The code for releasing temporary files is located at server.go line 1726 in the
net/http
package.Related Tickets & Documents
Added/updated tests?
have not been included
Run verifications and test
make verify
is passingmake test
is passing