This is the mail archive of the
elfutils-devel@sourceware.org
mailing list for the elfutils project.
[Bug libelf/24085] New: An Out of Memory problem was discovered in function in read_long_names in elf_begin.c in libelf
- From: "wcventure at 126 dot com" <sourceware-bugzilla at sourceware dot org>
- To: elfutils-devel at sourceware dot org
- Date: Fri, 11 Jan 2019 06:27:30 +0000
- Subject: [Bug libelf/24085] New: An Out of Memory problem was discovered in function in read_long_names in elf_begin.c in libelf
- Auto-submitted: auto-generated
https://sourceware.org/bugzilla/show_bug.cgi?id=24085
Bug ID: 24085
Summary: An Out of Memory problem was discovered in function in
read_long_names in elf_begin.c in libelf
Product: elfutils
Version: unspecified
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: libelf
Assignee: unassigned at sourceware dot org
Reporter: wcventure at 126 dot com
CC: elfutils-devel at sourceware dot org
Target Milestone: ---
Created attachment 11531
--> https://sourceware.org/bugzilla/attachment.cgi?id=11531&action=edit
POC
Hi, there.
We test the program at the master branch. An Out of Memory problem was
discovered in function in read_long_names in elf_begin.c in libelf. The program
tries to allocate with a large number size(444444454912 bytes) of memory.
$git log
> commit 1dabad36ee28aa76b8cf14b6426b379cabee6def
> Author: Jim Wilson <jimw@sifive.com>
> Date: Thu Dec 27 15:25:49 2018 -0800
>
> RISC-V: Improve riscv64 core file support.
>
> This fixes two problems. The offset for x1 is changed from 1 to 8 because
> this is a byte offset not a register skip count. Support for reading the
> PC value is added. This requires changing the testsuite to match the new
> readelf output for coredumps.
>
> Signed-off-by: Jim Wilson <jimw@sifive.com>
The ASAN dumps the stack trace as follows:
> ==10165==ERROR: AddressSanitizer failed to allocate 0x677af43000 (444444454912) bytes of LargeMmapAllocator (error code: 12)
> ==10165==Process memory map follows:
> 0x000000400000-0x000000430000 /home/wencheng/Experiment/elfutils/build/bin/eu-ar
> 0x00000062f000-0x000000630000 /home/wencheng/Experiment/elfutils/build/bin/eu-ar
> 0x000000630000-0x000000633000 /home/wencheng/Experiment/elfutils/build/bin/eu-ar
> 0x00007fff7000-0x00008fff7000
> 0x00008fff7000-0x02008fff7000
> 0x02008fff7000-0x10007fff8000
> 0x600000000000-0x602000000000
> 0x602000000000-0x602000010000
> 0x602000010000-0x602e00000000
> 0x602e00000000-0x602e00010000
> 0x602e00010000-0x604000000000
> 0x604000000000-0x604000010000
> 0x604000010000-0x604e00000000
> 0x604e00000000-0x604e00010000
> 0x604e00010000-0x606000000000
> 0x606000000000-0x606000010000
> 0x606000010000-0x606e00000000
> 0x606e00000000-0x606e00010000
> 0x606e00010000-0x607000000000
> 0x607000000000-0x607000010000
> 0x607000010000-0x607e00000000
> 0x607e00000000-0x607e00010000
> 0x607e00010000-0x608000000000
> 0x608000000000-0x608000010000
> 0x608000010000-0x608e00000000
> 0x608e00000000-0x608e00010000
> 0x608e00010000-0x60b000000000
> 0x60b000000000-0x60b000010000
> 0x60b000010000-0x60be00000000
> 0x60be00000000-0x60be00010000
> 0x60be00010000-0x60c000000000
> 0x60c000000000-0x60c000010000
> 0x60c000010000-0x60ce00000000
> 0x60ce00000000-0x60ce00010000
> 0x60ce00010000-0x60f000000000
> 0x60f000000000-0x60f000010000
> 0x60f000010000-0x60fe00000000
> 0x60fe00000000-0x60fe00010000
> 0x60fe00010000-0x610000000000
> 0x610000000000-0x610000010000
> 0x610000010000-0x610e00000000
> 0x610e00000000-0x610e00010000
> 0x610e00010000-0x611000000000
> 0x611000000000-0x611000010000
> 0x611000010000-0x611e00000000
> 0x611e00000000-0x611e00010000
> 0x611e00010000-0x612000000000
> 0x612000000000-0x612000010000
> 0x612000010000-0x612e00000000
> 0x612e00000000-0x612e00010000
> 0x612e00010000-0x614000000000
> 0x614000000000-0x614000010000
> 0x614000010000-0x614e00000000
> 0x614e00000000-0x614e00010000
> 0x614e00010000-0x618000000000
> 0x618000000000-0x618000010000
> 0x618000010000-0x618e00000000
> 0x618e00000000-0x618e00010000
> 0x618e00010000-0x619000000000
> 0x619000000000-0x619000010000
> 0x619000010000-0x619e00000000
> 0x619e00000000-0x619e00010000
> 0x619e00010000-0x61a000000000
> 0x61a000000000-0x61a000010000
> 0x61a000010000-0x61ae00000000
> 0x61ae00000000-0x61ae00010000
> 0x61ae00010000-0x624000000000
> 0x624000000000-0x624000010000
> 0x624000010000-0x624e00000000
> 0x624e00000000-0x624e00010000
> 0x624e00010000-0x640000000000
> 0x640000000000-0x640000003000
> 0x7f18aa227000-0x7f18aa500000 /usr/lib/locale/locale-archive
> 0x7f18aa500000-0x7f18aa600000
> 0x7f18aa700000-0x7f18aa800000
> 0x7f18aa900000-0x7f18aaa00000
> 0x7f18aab00000-0x7f18aac00000
> 0x7f18aac59000-0x7f18acfab000
> 0x7f18acfab000-0x7f18acfc4000 /lib/x86_64-linux-gnu/libz.so.1.2.8
> 0x7f18acfc4000-0x7f18ad1c3000 /lib/x86_64-linux-gnu/libz.so.1.2.8
> 0x7f18ad1c3000-0x7f18ad1c4000 /lib/x86_64-linux-gnu/libz.so.1.2.8
> 0x7f18ad1c4000-0x7f18ad1c5000 /lib/x86_64-linux-gnu/libz.so.1.2.8
> 0x7f18ad1c5000-0x7f18ad1dc000 /lib/x86_64-linux-gnu/libgcc_s.so.1
> 0x7f18ad1dc000-0x7f18ad3db000 /lib/x86_64-linux-gnu/libgcc_s.so.1
> 0x7f18ad3db000-0x7f18ad3dc000 /lib/x86_64-linux-gnu/libgcc_s.so.1
> 0x7f18ad3dc000-0x7f18ad3dd000 /lib/x86_64-linux-gnu/libgcc_s.so.1
> 0x7f18ad3dd000-0x7f18ad4e5000 /lib/x86_64-linux-gnu/libm-2.23.so
> 0x7f18ad4e5000-0x7f18ad6e4000 /lib/x86_64-linux-gnu/libm-2.23.so
> 0x7f18ad6e4000-0x7f18ad6e5000 /lib/x86_64-linux-gnu/libm-2.23.so
> 0x7f18ad6e5000-0x7f18ad6e6000 /lib/x86_64-linux-gnu/libm-2.23.so
> 0x7f18ad6e6000-0x7f18ad6fe000 /lib/x86_64-linux-gnu/libpthread-2.23.so
> 0x7f18ad6fe000-0x7f18ad8fd000 /lib/x86_64-linux-gnu/libpthread-2.23.so
> 0x7f18ad8fd000-0x7f18ad8fe000 /lib/x86_64-linux-gnu/libpthread-2.23.so
> 0x7f18ad8fe000-0x7f18ad8ff000 /lib/x86_64-linux-gnu/libpthread-2.23.so
> 0x7f18ad8ff000-0x7f18ad903000
> 0x7f18ad903000-0x7f18ad90a000 /lib/x86_64-linux-gnu/librt-2.23.so
> 0x7f18ad90a000-0x7f18adb09000 /lib/x86_64-linux-gnu/librt-2.23.so
> 0x7f18adb09000-0x7f18adb0a000 /lib/x86_64-linux-gnu/librt-2.23.so
> 0x7f18adb0a000-0x7f18adb0b000 /lib/x86_64-linux-gnu/librt-2.23.so
> 0x7f18adb0b000-0x7f18adb0e000 /lib/x86_64-linux-gnu/libdl-2.23.so
> 0x7f18adb0e000-0x7f18add0d000 /lib/x86_64-linux-gnu/libdl-2.23.so
> 0x7f18add0d000-0x7f18add0e000 /lib/x86_64-linux-gnu/libdl-2.23.so
> 0x7f18add0e000-0x7f18add0f000 /lib/x86_64-linux-gnu/libdl-2.23.so
> 0x7f18add0f000-0x7f18adecf000 /lib/x86_64-linux-gnu/libc-2.23.so
> 0x7f18adecf000-0x7f18ae0cf000 /lib/x86_64-linux-gnu/libc-2.23.so
> 0x7f18ae0cf000-0x7f18ae0d3000 /lib/x86_64-linux-gnu/libc-2.23.so
> 0x7f18ae0d3000-0x7f18ae0d5000 /lib/x86_64-linux-gnu/libc-2.23.so
> 0x7f18ae0d5000-0x7f18ae0d9000
> 0x7f18ae0d9000-0x7f18ae211000 /home/wencheng/Experiment/elfutils/build/lib/libelf-0.175.so
> 0x7f18ae211000-0x7f18ae410000 /home/wencheng/Experiment/elfutils/build/lib/libelf-0.175.so
> 0x7f18ae410000-0x7f18ae411000 /home/wencheng/Experiment/elfutils/build/lib/libelf-0.175.so
> 0x7f18ae411000-0x7f18ae414000 /home/wencheng/Experiment/elfutils/build/lib/libelf-0.175.so
> 0x7f18ae414000-0x7f18ae415000
> 0x7f18ae415000-0x7f18ae567000 /usr/lib/x86_64-linux-gnu/libasan.so.4.0.0
> 0x7f18ae567000-0x7f18ae766000 /usr/lib/x86_64-linux-gnu/libasan.so.4.0.0
> 0x7f18ae766000-0x7f18ae769000 /usr/lib/x86_64-linux-gnu/libasan.so.4.0.0
> 0x7f18ae769000-0x7f18ae76c000 /usr/lib/x86_64-linux-gnu/libasan.so.4.0.0
> 0x7f18ae76c000-0x7f18af3d1000
> 0x7f18af3d1000-0x7f18af3f7000 /lib/x86_64-linux-gnu/ld-2.23.so
> 0x7f18af4fd000-0x7f18af5c5000
> 0x7f18af5c5000-0x7f18af5c6000 /home/wencheng/Experiment/elfutils/Fuzzing/ar_out/crashes/id:000000,sig:06,src:000264,op:havoc,rep:2
> 0x7f18af5c6000-0x7f18af5de000
> 0x7f18af5de000-0x7f18af5f6000
> 0x7f18af5f6000-0x7f18af5f7000 /lib/x86_64-linux-gnu/ld-2.23.so
> 0x7f18af5f7000-0x7f18af5f8000 /lib/x86_64-linux-gnu/ld-2.23.so
> 0x7f18af5f8000-0x7f18af5f9000
> 0x7fff88ddc000-0x7fff88dfd000 [stack]
> 0x7fff88f04000-0x7fff88f07000 [vvar]
> 0x7fff88f07000-0x7fff88f09000 [vdso]
> 0xffffffffff600000-0xffffffffff601000 [vsyscall]
> ==10165==End of process memory map.
> ==10165==AddressSanitizer CHECK failed: ../../../../src/libsanitizer/sanitizer_common/sanitizer_common.cc:118 "((0 && "unable to mmap")) != (0)" (0x0, 0x0)
> #0 0x7f18ae4fec42 (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe9c42)
> #1 0x7f18ae51d5d5 in __sanitizer::CheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x1085d5)
> #2 0x7f18ae5084d2 (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xf34d2)
> #3 0x7f18ae5148e5 (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xff8e5)
> #4 0x7f18ae43d83d (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x2883d)
> #5 0x7f18ae4f3b5a in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdeb5a)
> #6 0x7f18ae0fd25c in read_long_names /home/wencheng/Experiment/elfutils/libelf/elf_begin.c:750
> #7 0x7f18ae0fd25c in __libelf_next_arhdr_wrlock /home/wencheng/Experiment/elfutils/libelf/elf_begin.c:881
> #8 0x7f18ae100db7 in dup_elf /home/wencheng/Experiment/elfutils/libelf/elf_begin.c:1030
> #9 0x7f18ae100db7 in lock_dup_elf /home/wencheng/Experiment/elfutils/libelf/elf_begin.c:1088
> #10 0x7f18ae100db7 in elf_begin /home/wencheng/Experiment/elfutils/libelf/elf_begin.c:1134
> #11 0x4090b0 in do_oper_extract /home/wencheng/Experiment/elfutils/src/ar.c:496
> #12 0x403e25 in main /home/wencheng/Experiment/elfutils/src/ar.c:252
> #13 0x7f18add2f82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
> #14 0x405338 in _start (/home/wencheng/Experiment/elfutils/build/bin/eu-ar+0x405338)
--
You are receiving this mail because:
You are on the CC list for the bug.