Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: Ensure MultipartForm is properly restored to the original request #777

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

fanyiboaa
Copy link

@fanyiboaa fanyiboaa commented Dec 22, 2024

What type of PR is this? (check all applicable)

  • Refactor
  • Feature
  • Bug Fix
  • Optimization
  • Documentation Update
  • Go Version Update
  • Dependency Update

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 by MultipartForm. The shallow copy causes req.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 to originReq at the end of the request handling. This will allow the net/http server to properly release any temporary files associated with the MultipartForm.

The code for releasing temporary files is located at server.go line 1726 in the net/http package.

Related Tickets & Documents

  • This PR addresses the issue without a specific related issue number.

Added/updated tests?

  • Yes
  • No, and this is why: please replace this line with details on why tests
    have not been included
  • I need help with writing tests

Run verifications and test

  • make verify is passing
  • make test is passing

@fanyiboaa fanyiboaa marked this pull request as ready for review December 22, 2024 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant