Fix file descriptor leak in get_binary_hash #2507
Merged
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.
Describe
This patch fixes a file descriptor leak in the
get_binary_hash()
function.When the target file is empty (
st.st_size == 0
), the function previously returned early without closing the file descriptor, resulting in a potential resource leak.The fix adds a
close(fd)
call before returning in that case.Expected Behavior
When the input file is empty, the function should close the file descriptor before returning.
This ensures no file descriptor leak occurs regardless of file contents.
Actual Behavior
If the input file is empty, the function returns immediately without closing the file descriptor.
When invoked repeatedly, this can lead to file descriptor exhaustion and undefined behavior.
Prevents a file descriptor leak by ensuring the descriptor is closed when handling empty files.
Thanks for reviewing.