bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/30890] New: objdump: attempting free on address which was


From: yan.cs10 at nycu dot edu.tw
Subject: [Bug binutils/30890] New: objdump: attempting free on address which was not malloc()-ed at bfd/elf.c:9802 in _bfd_elf_slurp_version_tables
Date: Mon, 25 Sep 2023 13:48:55 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=30890

            Bug ID: 30890
           Summary: objdump: attempting free on address which was not
                    malloc()-ed at bfd/elf.c:9802 in
                    _bfd_elf_slurp_version_tables
           Product: binutils
           Version: 2.42 (HEAD)
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: binutils
          Assignee: unassigned at sourceware dot org
          Reporter: yan.cs10 at nycu dot edu.tw
  Target Milestone: ---

Created attachment 15129
  --> https://sourceware.org/bugzilla/attachment.cgi?id=15129&action=edit
this poc with -T argument can crash objdump in the latest version

Summary:

A crash caused when using objdump
AddressSanitizer reported it as attempting free on address which was not
malloc()-ed

git commit, OS, Compiler and processor

git commit: be8e83130
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
g++ (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
Ubuntu 20.04.4 LTS
AMD Ryzen 5 3600X 6-Core Processor

Steps to reproduce:

$ cd binutils-gdb
$ export CFLAGS='-fsanitize=address -fsanitize-recover=address -g3'
$ export CXXFLAGS='-fsanitize=address -fsanitize-recover=address -g3'
$ make
$ binutils/nm-new -D ./poc_0

AddressSanitizer report:

$ /home/pt/sytseng/binutils-gdb-asan/binutils/objdump -T ./poc_0

/home/pt/sytseng/binutils-gdb-asan/binutils/objdump: option -P/--private not
supported by this file
BFD: ./pocs/poc_0: .gnu.version_r invalid entry
=================================================================
==2486577==ERROR: AddressSanitizer: attempting free on address which was not
malloc()-ed: 0x621000006688 in thread T0
    #0 0x7f62bd29140f in __interceptor_free
../../../../src/libsanitizer/asan/asan_malloc_linux.cc:122
    #1 0x55892d993c66 in _bfd_elf_slurp_version_tables
/home/pt/sytseng/binutils-gdb-asan/bfd/elf.c:9802
    #2 0x55892d948805 in bfd_elf64_slurp_symbol_table
/home/pt/sytseng/binutils-gdb-asan/bfd/elfcode.h:1278
    #3 0x55892d99022d in _bfd_elf_canonicalize_dynamic_symtab
/home/pt/sytseng/binutils-gdb-asan/bfd/elf.c:9285
    #4 0x55892d77be96 in slurp_dynamic_symtab objdump.c:1051
    #5 0x55892d7923e0 in dump_bfd objdump.c:5656
    #6 0x55892d7928cd in display_object_bfd objdump.c:5750
    #7 0x55892d792c05 in display_any_bfd objdump.c:5837
    #8 0x55892d792c7f in display_file objdump.c:5858
    #9 0x55892d794633 in main objdump.c:6269
    #10 0x7f62bcfb0082 in __libc_start_main ../csu/libc-start.c:308
    #11 0x55892d77837d in _start
(/home/pt/sytseng/binutils-gdb-asan/binutils/objdump+0x13737d)

0x621000006688 is located 392 bytes inside of 4064-byte region
[0x621000006500,0x6210000074e0)
allocated by thread T0 here:
    #0 0x7f62bd291808 in __interceptor_malloc
../../../../src/libsanitizer/asan/asan_malloc_linux.cc:144
    #1 0x55892db79bf2 in _objalloc_alloc objalloc.c:159
    #2 0x55892d8d560c in bfd_alloc
/home/pt/sytseng/binutils-gdb-asan/bfd/libbfd.c:452
    #3 0x55892d95fa52 in _bfd_elf_get_dynamic_symbols
/home/pt/sytseng/binutils-gdb-asan/bfd/elf.c:2293
    #4 0x55892d9457a5 in bfd_elf64_object_p
/home/pt/sytseng/binutils-gdb-asan/bfd/elfcode.h:861
    #5 0x55892d8d11fe in bfd_check_format_matches
/home/pt/sytseng/binutils-gdb-asan/bfd/format.c:431
    #6 0x55892d7928b5 in display_object_bfd objdump.c:5748
    #7 0x55892d792c05 in display_any_bfd objdump.c:5837
    #8 0x55892d792c7f in display_file objdump.c:5858
    #9 0x55892d794633 in main objdump.c:6269
    #10 0x7f62bcfb0082 in __libc_start_main ../csu/libc-start.c:308

SUMMARY: AddressSanitizer: bad-free
../../../../src/libsanitizer/asan/asan_malloc_linux.cc:122 in
__interceptor_free
==2486577==ABORTING

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]