Commit 31816e7
committed
fix memory leak in -E mode
When running with -fsanitize=leak enabled nasm prints this error:
Direct leak of 114 byte(s) in 10 object(s) allocated from:
#0 0x7f3031ef0867 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
#1 0x564dc07a2f6c in nasm_malloc nasmlib/alloc.c:55
#2 0x564dc07f606a in detoken asm/preproc.c:2029
#3 0x564dc0828a62 in pp_getline asm/preproc.c:7835
#4 0x564dc0797f3e in main asm/nasm.c:654
#5 0x7f3031608d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
#6 0x7f3031608e3f in __libc_start_main_impl ../csu/libc-start.c:392
#7 0x564dc0799c24 in _start (/home/ivan/d/nasm/nasm+0x2e5c24)
This is reproducible on tests that do preprocessing for example
weirdpaste.asm test.
The problem is caused by the fact that the line returned by pp_getline
isn't freed in main function.
Signed-off-by: Ivan Sorokin <vanyacpp@gmail.com>1 parent a916e41 commit 31816e7
1 file changed
+4
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
682 | 682 | | |
683 | 683 | | |
684 | 684 | | |
685 | | - | |
| 685 | + | |
686 | 686 | | |
687 | 687 | | |
688 | 688 | | |
| |||
692 | 692 | | |
693 | 693 | | |
694 | 694 | | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
695 | 698 | | |
696 | 699 | | |
697 | 700 | | |
| |||
0 commit comments