Open
Conversation
When running with -fsanitize=leak enabled nasm prints this error:
Direct leak of 31 byte(s) in 1 object(s) allocated from:
#0 0x7faadfc56867 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
netwide-assembler#1 0x7faadf3ecaac in __GI___libc_scratch_buffer_dupfree malloc/scratch_buffer_dupfree.c:32
netwide-assembler#2 0x7faadf395eed in scratch_buffer_dupfree ../include/scratch_buffer.h:147
netwide-assembler#3 0x7faadf395eed in realpath_stk stdlib/canonicalize.c:424
netwide-assembler#4 0x7faadf3964f5 in __GI___realpath stdlib/canonicalize.c:446
netwide-assembler#5 0x7faadfbe6b7c in __interceptor_canonicalize_file_name ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:3682
netwide-assembler#6 0x5643cfb1b058 in nasm_realpath nasmlib/realpath.c:58
netwide-assembler#7 0x5643cfaaaef5 in elf_init output/outelf.c:547
netwide-assembler#8 0x5643cfaaade7 in elf32_init output/outelf.c:496
netwide-assembler#9 0x5643cf9d1454 in main asm/nasm.c:716
netwide-assembler#10 0x7faadf36ed8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
netwide-assembler#11 0x7faadf36ee3f in __libc_start_main_impl ../csu/libc-start.c:392
netwide-assembler#12 0x5643cf9cce04 in _start (/home/ivan/d/nasm/nasm+0x2e2e04)
Direct leak of 24 byte(s) in 1 object(s) allocated from:
#0 0x7faadfc56867 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
netwide-assembler#1 0x5643cf9dcbc4 in nasm_malloc nasmlib/alloc.c:55
netwide-assembler#2 0x5643cf9dced4 in nasm_strndup nasmlib/alloc.c:127
netwide-assembler#3 0x5643cfb1b4e4 in nasm_dirname nasmlib/path.c:152
netwide-assembler#4 0x5643cfaaaf4d in elf_init output/outelf.c:550
netwide-assembler#5 0x5643cfaaade7 in elf32_init output/outelf.c:496
netwide-assembler#6 0x5643cf9d1454 in main asm/nasm.c:716
netwide-assembler#7 0x7faadf36ed8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
netwide-assembler#8 0x7faadf36ee3f in __libc_start_main_impl ../csu/libc-start.c:392
netwide-assembler#9 0x5643cf9cce04 in _start (/home/ivan/d/nasm/nasm+0x2e2e04)
This error is reproducible on any test that is run with -felf.
The problem is fixed by calling nasm_free appropriately. I had to
remove const from pointers because I get -Wdiscarded-qualifiers
warning otherwise, because nasm_free takes non-const pointer.
Signed-off-by: Ivan Sorokin <vanyacpp@gmail.com>
Member
|
Is this still a problem? |
Contributor
Author
|
I tested the latest commit 22a9118 in master and, yes, the bug is still present. The steps to reproduce the problem are described in this comment: The problem manifests in many tests, one example is |
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.
When running with
-fsanitize=leakenabled nasm prints this error:This error is reproducible on any test that is run with
-felf.The problem is fixed by calling nasm_free appropriately. I had to remove const from pointers because I get
-Wdiscarded-qualifierswarning otherwise, becausenasm_freetakes non-const pointer.