bug-binutils
[Top][All Lists]
Advanced

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

[Bug gold/23338] New: Segfault in output.h, line 374


From: bugs at feusi dot co
Subject: [Bug gold/23338] New: Segfault in output.h, line 374
Date: Mon, 25 Jun 2018 15:18:36 +0000

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

            Bug ID: 23338
           Summary: Segfault in output.h, line 374
           Product: binutils
           Version: 2.32 (HEAD)
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: gold
          Assignee: ccoutant at gmail dot com
          Reporter: bugs at feusi dot co
                CC: ian at airs dot com
  Target Milestone: ---

Created attachment 11099
  --> https://sourceware.org/bugzilla/attachment.cgi?id=11099&action=edit
Corrupt elf file which causes linker to crash

Hi, I am working on a project in which I use different fuzzers to search
for bugs in open source software and I decided to fuzz the gold linker.
In doing so I discovered a segmentation fault in output.h. It is reproducible
with clang and gcc compiled with the address sanitizer. However, I can not
reproduce it with off-the-shelf installations of gold on debian or arch
linux. In these cases, the linker simply states "internal error in find_view,


at fileread.cc:336." Is this due to a signal handler inside these
installations?
Below, you will find a detailed backtrace, as supplied by the address
sanitizer:

./ld-new: error: ../../binutils-gdb/gold/exploits/1/min-man: section name
section has wrong type: 1094795585
./ld-new: error: ../../binutils-gdb/gold/exploits/1/min-man: invalid alignment
4702111234474983745 for section ""
ASAN:DEADLYSIGNAL
=================================================================
==45815==ERROR: AddressSanitizer: SEGV on unknown address 0x7ec0598c11bc (pc
0x7f7f16381ebf bp 0x7ffc6203e510 sp 0x7ffc6203dc88 T0)
==45815==The signal is caused by a WRITE memory access.
    #0 0x7f7f16381ebe in memcpy (/lib/x86_64-linux-gnu/libc.so.6+0x9febe)
    #1 0x7f7f1746066d  (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x7666d)
    #2 0x555aad4af8e1 in gold::Output_data::write(gold::Output_file*)
/home/jfe/binutils-gdb-noasan/gold/output.h:374
    #3 0x555aad4af8e1 in
gold::Output_section::Input_section::write(gold::Output_file*)
/home/jfe/binutils-gdb-noasan/gold/output.cc:2302
    #4 0x555aad4af8e1 in gold::Output_section::do_write(gold::Output_file*)
/home/jfe/binutils-gdb-noasan/gold/output.cc:3763
    #5 0x555aad1ff04e in gold::Output_data::write(gold::Output_file*)
/home/jfe/binutils-gdb-noasan/gold/output.h:374
    #6 0x555aad1ff04e in
gold::Layout::write_output_sections(gold::Output_file*) const
/home/jfe/binutils-gdb-noasan/gold/layout.cc:5756
    #7 0x555aad1ff04e in gold::Write_sections_task::run(gold::Workqueue*)
/home/jfe/binutils-gdb-noasan/gold/layout.cc:6003
    #8 0x555aad9fc198 in gold::Workqueue::find_and_run_task(int)
/home/jfe/binutils-gdb-noasan/gold/workqueue.cc:319
    #9 0x555aad9fe231 in gold::Workqueue::process(int)
/home/jfe/binutils-gdb-noasan/gold/workqueue.cc:495
    #10 0x555aac2b729c in main /home/jfe/binutils-gdb-noasan/gold/main.cc:252
    #11 0x7f7f16303a86 in __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x21a86)
    #12 0x555aac2bf5b9 in _start
(/home/jfe/binutils-gdb-noasan/gold/ld-new+0x1615b9)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/lib/x86_64-linux-gnu/libc.so.6+0x9febe) in
memcpy
==45815==ABORTING

This bug can be reproduced by compiling gold with the address sanitizer
flag and the running it as follows:

./ld-new -i <file> -o /dev/null

Where <file> is the attached file.

cheers,
project-repo

-- 
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]