fix: Prevent double-free and memory leaks in validate function - #9
Draft
matapatos wants to merge 1 commit into
Draft
fix: Prevent double-free and memory leaks in validate function#9matapatos wants to merge 1 commit into
matapatos wants to merge 1 commit into
Conversation
- Fix double-free bug where field_name was released twice - Fix memory leak where field_name was not released when field_value is NULL and stop_first_error is false - Fix memory leak where field_name was not released on exception from validate_field_value - Fix memory leak where field_name was not released when valid_value is NULL and stop_first_error is false - Ensure field_name is released in all code paths before returning or continuing This prevents use-after-free errors and memory leaks in the validation logic. Co-authored-by: matapatos <matapatos@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Details
This PR fixes several memory management issues in
src/validate_function.c:Bugs Fixed:
field_namewas being released twice in some code pathsfield_namewas not released whenfield_valueis NULL andstop_first_erroris falsefield_namewas not released whenvalidate_field_valuethrows an exceptionfield_namewas not released whenvalid_valueis NULL andstop_first_erroris falseChanges:
field_nameis released in all code pathszend_string_releasecalls beforecontinueandRETURN_THROWSstatementsImpact
These fixes prevent:
Testing
The fix maintains the same external behavior while correcting internal memory management.