Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rafind2 memory leaks #11762

Closed
bannsec opened this issue Oct 7, 2018 · 1 comment · Fixed by #11817
Closed

rafind2 memory leaks #11762

bannsec opened this issue Oct 7, 2018 · 1 comment · Fixed by #11817
Assignees
Milestone

Comments

@bannsec
Copy link
Contributor

bannsec commented Oct 7, 2018

Work environment

Questions Answers
OS/arch/bits (mandatory) Ubuntu x86 64
File format of the file you reverse (mandatory) ELF
Architecture/bits of the file (mandatory) x86/64
r2 -v full output, not truncated (mandatory) radare2 3.0.0-git 19666 @ linux-x86-64 git.2.9.0-310-gcb62c376b commit: cb62c37 build: 2018-10-07__20:50:44

Expected behavior

No memleak

Actual behavior

Memleak

Steps to reproduce the behavior

  • Compile r2 with ASAN
  • ASAN_OPTIONS=detect_odr_violation=0 rafind2 one two

Additional Logs, screenshots, source-code, configuration dump, ...

Cannot open file 'one'
Cannot open file 'two'

=================================================================
==26263==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 1328 byte(s) in 1 object(s) allocated from:
    #0 0x55da9b82e868 in calloc (/home/angr/opt/radare2/binr/rafind2/rafind2+0xdc868)
    #1 0x7f3486d14289 in r_io_new /home/angr/opt/radare2/libr/io/io.c:99:20
    #2 0x55da9b8679e1 in rafind_open_file /home/angr/opt/radare2/binr/rafind2/rafind2.c:132:7
    #3 0x55da9b8679e1 in rafind_open /home/angr/opt/radare2/binr/rafind2/rafind2.c:257
    #4 0x55da9b8673c1 in main /home/angr/opt/radare2/binr/rafind2/rafind2.c:350:3
    #5 0x7f3485572b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310

Indirect leak of 36656 byte(s) in 29 object(s) allocated from:
    #0 0x55da9b82e868 in calloc (/home/angr/opt/radare2/binr/rafind2/rafind2+0xdc868)
    #1 0x7f3486d1e51c in r_io_plugin_init /home/angr/opt/radare2/libr/io/plugin.c:32:19
    #2 0x7f3486d1439d in r_io_init /home/angr/opt/radare2/libr/io/io.c:112:2
    #3 0x7f3486d1439d in r_io_new /home/angr/opt/radare2/libr/io/io.c:99
    #4 0x55da9b8679e1 in rafind_open_file /home/angr/opt/radare2/binr/rafind2/rafind2.c:132:7
    #5 0x55da9b8679e1 in rafind_open /home/angr/opt/radare2/binr/rafind2/rafind2.c:257
    #6 0x55da9b8673c1 in main /home/angr/opt/radare2/binr/rafind2/rafind2.c:350:3
    #7 0x7f3485572b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310

Indirect leak of 696 byte(s) in 29 object(s) allocated from:
    #0 0x55da9b82e640 in malloc (/home/angr/opt/radare2/binr/rafind2/rafind2+0xdc640)
    #1 0x7f3486640e58 in ls_append /home/angr/opt/radare2/shlr/sdb/src/ls.c:203:7
    #2 0x7f3486d1e5f7 in r_io_plugin_add /home/angr/opt/radare2/libr/io/plugin.c:17:2
    #3 0x7f3486d1e5f7 in r_io_plugin_init /home/angr/opt/radare2/libr/io/plugin.c:37
    #4 0x7f3486d1439d in r_io_init /home/angr/opt/radare2/libr/io/io.c:112:2
    #5 0x7f3486d1439d in r_io_new /home/angr/opt/radare2/libr/io/io.c:99
    #6 0x55da9b8679e1 in rafind_open_file /home/angr/opt/radare2/binr/rafind2/rafind2.c:132:7
    #7 0x55da9b8679e1 in rafind_open /home/angr/opt/radare2/binr/rafind2/rafind2.c:257
    #8 0x55da9b8673c1 in main /home/angr/opt/radare2/binr/rafind2/rafind2.c:350:3
    #9 0x7f3485572b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310

Indirect leak of 48 byte(s) in 1 object(s) allocated from:
    #0 0x55da9b82e868 in calloc (/home/angr/opt/radare2/binr/rafind2/rafind2+0xdc868)
    #1 0x7f348663d6fc in ls_new /home/angr/opt/radare2/shlr/sdb/src/ls.c:15:18
    #2 0x7f348663d6fc in ls_newf /home/angr/opt/radare2/shlr/sdb/src/ls.c:7
    #3 0x7f3486d29ee1 in r_io_section_init /home/angr/opt/radare2/libr/io/section.c:22:19
    #4 0x7f3486d1438d in r_io_init /home/angr/opt/radare2/libr/io/io.c:110:2
    #5 0x7f3486d1438d in r_io_new /home/angr/opt/radare2/libr/io/io.c:99
    #6 0x55da9b8679e1 in rafind_open_file /home/angr/opt/radare2/binr/rafind2/rafind2.c:132:7
    #7 0x55da9b8679e1 in rafind_open /home/angr/opt/radare2/binr/rafind2/rafind2.c:257
    #8 0x55da9b8673c1 in main /home/angr/opt/radare2/binr/rafind2/rafind2.c:350:3
    #9 0x7f3485572b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310

Indirect leak of 48 byte(s) in 1 object(s) allocated from:
    #0 0x55da9b82e868 in calloc (/home/angr/opt/radare2/binr/rafind2/rafind2+0xdc868)
    #1 0x7f348663d6fc in ls_new /home/angr/opt/radare2/shlr/sdb/src/ls.c:15:18
    #2 0x7f348663d6fc in ls_newf /home/angr/opt/radare2/shlr/sdb/src/ls.c:7
    #3 0x7f3486d1e467 in r_io_plugin_init /home/angr/opt/radare2/libr/io/plugin.c:27:16
    #4 0x7f3486d1439d in r_io_init /home/angr/opt/radare2/libr/io/io.c:112:2
    #5 0x7f3486d1439d in r_io_new /home/angr/opt/radare2/libr/io/io.c:99
    #6 0x55da9b8679e1 in rafind_open_file /home/angr/opt/radare2/binr/rafind2/rafind2.c:132:7
    #7 0x55da9b8679e1 in rafind_open /home/angr/opt/radare2/binr/rafind2/rafind2.c:257
    #8 0x55da9b8673c1 in main /home/angr/opt/radare2/binr/rafind2/rafind2.c:350:3
    #9 0x7f3485572b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310

Indirect leak of 48 byte(s) in 1 object(s) allocated from:
    #0 0x55da9b82e868 in calloc (/home/angr/opt/radare2/binr/rafind2/rafind2+0xdc868)
    #1 0x7f348663d6fc in ls_new /home/angr/opt/radare2/shlr/sdb/src/ls.c:15:18
    #2 0x7f348663d6fc in ls_newf /home/angr/opt/radare2/shlr/sdb/src/ls.c:7
    #3 0x7f3486d255f1 in r_io_map_init /home/angr/opt/radare2/libr/io/map.c:221:14
    #4 0x7f3486d14385 in r_io_init /home/angr/opt/radare2/libr/io/io.c:109:2
    #5 0x7f3486d14385 in r_io_new /home/angr/opt/radare2/libr/io/io.c:99
    #6 0x55da9b8679e1 in rafind_open_file /home/angr/opt/radare2/binr/rafind2/rafind2.c:132:7
    #7 0x55da9b8679e1 in rafind_open /home/angr/opt/radare2/binr/rafind2/rafind2.c:257
    #8 0x55da9b8673c1 in main /home/angr/opt/radare2/binr/rafind2/rafind2.c:350:3
    #9 0x7f3485572b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x55da9b82e868 in calloc (/home/angr/opt/radare2/binr/rafind2/rafind2+0xdc868)
    #1 0x7f348649bd31 in r_list_new /home/angr/opt/radare2/libr/util/list.c:165:16
    #2 0x7f348649bd31 in r_list_newf /home/angr/opt/radare2/libr/util/list.c:174
    #3 0x7f3486d3b419 in r_io_cache_init /home/angr/opt/radare2/libr/io/cache.c:36:14
    #4 0x7f3486d14395 in r_io_init /home/angr/opt/radare2/libr/io/io.c:111:2
    #5 0x7f3486d14395 in r_io_new /home/angr/opt/radare2/libr/io/io.c:99
    #6 0x55da9b8679e1 in rafind_open_file /home/angr/opt/radare2/binr/rafind2/rafind2.c:132:7
    #7 0x55da9b8679e1 in rafind_open /home/angr/opt/radare2/binr/rafind2/rafind2.c:257
    #8 0x55da9b8673c1 in main /home/angr/opt/radare2/binr/rafind2/rafind2.c:350:3
    #9 0x7f3485572b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x55da9b82e868 in calloc (/home/angr/opt/radare2/binr/rafind2/rafind2+0xdc868)
    #1 0x7f348649bc09 in r_list_new /home/angr/opt/radare2/libr/util/list.c:165:16
    #2 0x7f3486d43365 in r_io_undo_init /home/angr/opt/radare2/libr/io/undo.c:20:20
    #3 0x7f3486d143a5 in r_io_init /home/angr/opt/radare2/libr/io/io.c:113:2
    #4 0x7f3486d143a5 in r_io_new /home/angr/opt/radare2/libr/io/io.c:99
    #5 0x55da9b8679e1 in rafind_open_file /home/angr/opt/radare2/binr/rafind2/rafind2.c:132:7
    #6 0x55da9b8679e1 in rafind_open /home/angr/opt/radare2/binr/rafind2/rafind2.c:257
    #7 0x55da9b8673c1 in main /home/angr/opt/radare2/binr/rafind2/rafind2.c:350:3
    #8 0x7f3485572b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310

Indirect leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x55da9b82e868 in calloc (/home/angr/opt/radare2/binr/rafind2/rafind2+0xdc868)
    #1 0x7f3486473db9 in r_cache_new /home/angr/opt/radare2/libr/util/cache.c:9:14
    #2 0x7f3486d3b440 in r_io_cache_init /home/angr/opt/radare2/libr/io/cache.c:37:15
    #3 0x7f3486d14395 in r_io_init /home/angr/opt/radare2/libr/io/io.c:111:2
    #4 0x7f3486d14395 in r_io_new /home/angr/opt/radare2/libr/io/io.c:99
    #5 0x55da9b8679e1 in rafind_open_file /home/angr/opt/radare2/binr/rafind2/rafind2.c:132:7
    #6 0x55da9b8679e1 in rafind_open /home/angr/opt/radare2/binr/rafind2/rafind2.c:257
    #7 0x55da9b8673c1 in main /home/angr/opt/radare2/binr/rafind2/rafind2.c:350:3
    #8 0x7f3485572b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310

Indirect leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x55da9b82e868 in calloc (/home/angr/opt/radare2/binr/rafind2/rafind2+0xdc868)
    #1 0x7f348659f56c in r_id_pool_new /home/angr/opt/radare2/libr/util/idpool.c:24:10
    #2 0x7f3486d2566f in r_io_map_init /home/angr/opt/radare2/libr/io/map.c:225:17
    #3 0x7f3486d14385 in r_io_init /home/angr/opt/radare2/libr/io/io.c:109:2
    #4 0x7f3486d14385 in r_io_new /home/angr/opt/radare2/libr/io/io.c:99
    #5 0x55da9b8679e1 in rafind_open_file /home/angr/opt/radare2/binr/rafind2/rafind2.c:132:7
    #6 0x55da9b8679e1 in rafind_open /home/angr/opt/radare2/binr/rafind2/rafind2.c:257
    #7 0x55da9b8673c1 in main /home/angr/opt/radare2/binr/rafind2/rafind2.c:350:3
    #8 0x7f3485572b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310

Indirect leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x55da9b82e868 in calloc (/home/angr/opt/radare2/binr/rafind2/rafind2+0xdc868)
    #1 0x7f348659f56c in r_id_pool_new /home/angr/opt/radare2/libr/util/idpool.c:24:10
    #2 0x7f3486d29f55 in r_io_section_init /home/angr/opt/radare2/libr/io/section.c:25:18
    #3 0x7f3486d1438d in r_io_init /home/angr/opt/radare2/libr/io/io.c:110:2
    #4 0x7f3486d1438d in r_io_new /home/angr/opt/radare2/libr/io/io.c:99
    #5 0x55da9b8679e1 in rafind_open_file /home/angr/opt/radare2/binr/rafind2/rafind2.c:132:7
    #6 0x55da9b8679e1 in rafind_open /home/angr/opt/radare2/binr/rafind2/rafind2.c:257
    #7 0x55da9b8673c1 in main /home/angr/opt/radare2/binr/rafind2/rafind2.c:350:3
    #8 0x7f3485572b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310

Indirect leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x55da9b82e868 in calloc (/home/angr/opt/radare2/binr/rafind2/rafind2+0xdc868)
    #1 0x7f34865a0305 in r_id_storage_new /home/angr/opt/radare2/libr/util/idpool.c:81:13
    #2 0x7f3486d34d10 in r_io_desc_init /home/angr/opt/radare2/libr/io/desc.c:12:14
    #3 0x7f3486d1436a in r_io_init /home/angr/opt/radare2/libr/io/io.c:107:2
    #4 0x7f3486d1436a in r_io_new /home/angr/opt/radare2/libr/io/io.c:99
    #5 0x55da9b8679e1 in rafind_open_file /home/angr/opt/radare2/binr/rafind2/rafind2.c:132:7
    #6 0x55da9b8679e1 in rafind_open /home/angr/opt/radare2/binr/rafind2/rafind2.c:257
    #7 0x55da9b8673c1 in main /home/angr/opt/radare2/binr/rafind2/rafind2.c:350:3
    #8 0x7f3485572b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310

Indirect leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x55da9b82e868 in calloc (/home/angr/opt/radare2/binr/rafind2/rafind2+0xdc868)
    #1 0x7f34865a01ea in r_id_pool_new /home/angr/opt/radare2/libr/util/idpool.c:24:10
    #2 0x7f34865a01ea in r_id_storage_new /home/angr/opt/radare2/libr/util/idpool.c:80
    #3 0x7f3486d34d10 in r_io_desc_init /home/angr/opt/radare2/libr/io/desc.c:12:14
    #4 0x7f3486d1436a in r_io_init /home/angr/opt/radare2/libr/io/io.c:107:2
    #5 0x7f3486d1436a in r_io_new /home/angr/opt/radare2/libr/io/io.c:99
    #6 0x55da9b8679e1 in rafind_open_file /home/angr/opt/radare2/binr/rafind2/rafind2.c:132:7
    #7 0x55da9b8679e1 in rafind_open /home/angr/opt/radare2/binr/rafind2/rafind2.c:257
    #8 0x55da9b8673c1 in main /home/angr/opt/radare2/binr/rafind2/rafind2.c:350:3
    #9 0x7f3485572b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310

SUMMARY: AddressSanitizer: 39008 byte(s) leaked in 69 allocation(s).
@radare
Copy link
Collaborator

radare commented Oct 7, 2018 via email

@radare radare added this to the 3.0 milestone Oct 7, 2018
@radare radare added the release label Oct 7, 2018
@ret2libc ret2libc self-assigned this Oct 12, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants