Fix memory leak caused by LLVMVerifyModule function call #507
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.
Description
Fix a memory leak in the
verify
function that calls theLLVMVerifyModule
function of LLVM.If we build
inkwell
with Address sanitizer enabled:RUSTFLAGS="-Z sanitizer=address" cargo +nightly build --target aarch64-unknown-linux-gnu -Zbuild-std
And try to use the the
inkwell::module::Module::verify
function, then sanitizer will report the following memory leak (if the function succeeds):This is caused by not freeing the memory allocated in the
strdup()
call in theLLVMVerifyModule
LLVM function .This fix calls
LLVMDisposeMessage
to explicitly callfree()
for theerr_str
pointer fixing the memory leak.Related Issue
N/A
How This Has Been Tested
Manually by building with sanitizers including this fix and calling
verify
function.Option<Breaking Changes>
N/A
Checklist