fix(httpshandler): close socket when SSL handshake fails with exception #6000
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.
I noticed that when sqlmap tries different SSL/TLS versions to connect to a server, it wasn't closing the socket if the handshake threw an exception. Each failed attempt left an open socket behind, which could add up to a resource leak over time.
The fix:
Pretty straightforward - I added sock.close() to both exception handlers in HTTPSConnection.connect(). This matches what the code already does when wrap_socket returns a falsy value (see lines 94 and 112), so it's just making the error path consistent with the existing cleanup logic.
Why it matters:
When scanning a lot of targets, or when a server rejects certain TLS versions, these leaked sockets could pile up and eventually hit system limits ("too many open files"). Not catastrophic, but definitely something worth fixing.
Tested by:
Verified the module imports cleanly
Checked that the fix follows the same pattern already used elsewhere in the function