[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug binutils/25200] New: strip-new: SIGSEGV in _bfd_elf_validate_reloc
From: |
fdgkhdkgh at gmail dot com |
Subject: |
[Bug binutils/25200] New: strip-new: SIGSEGV in _bfd_elf_validate_reloc and assertion fail reloc.c:8229 |
Date: |
Sun, 17 Nov 2019 16:27:03 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=25200
Bug ID: 25200
Summary: strip-new: SIGSEGV in _bfd_elf_validate_reloc and
assertion fail reloc.c:8229
Product: binutils
Version: 2.33
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: binutils
Assignee: unassigned at sourceware dot org
Reporter: fdgkhdkgh at gmail dot com
Target Milestone: ---
Created attachment 12081
--> https://sourceware.org/bugzilla/attachment.cgi?id=12081&action=edit
file that reproduces this problem
binutils Version : 2.33.1
(https://ftp.yzu.edu.tw/pub/gnu/binutils/binutils-2.33.1.tar.xz)
OS : ubuntu 18.04.3
kernel : gnu/linux 5.0.0-32-generic
processor : Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz
compiler : gcc 7.4.0
Steps to Reproduce :
download the sample from attachment
strip-new -F elf32-little -N .text ./assert_sample_1
gdb backtrace :
gdb-peda$ backtrace
#0 0x00005555555d052c in _bfd_elf_validate_reloc
(abfd=abfd@entry=0x5555558fb630, areloc=areloc@entry=0x555555947170) at
elf.c:9165
#1 0x00005555555fe8c7 in bfd_elf32_write_relocs (abfd=0x5555558fb630,
sec=0x5555558fc810, data=0x7fffffffdcd4) at elfcode.h:966
#2 0x00005555555abcec in bfd_map_over_sections
(abfd=abfd@entry=0x5555558fb630, operation=0x5555555fe770
<bfd_elf32_write_relocs>, user_storage=user_storage@entry=0x7fffffffdcd4)
at section.c:1374
#3 0x00005555555cbe4d in _bfd_elf_write_object_contents (abfd=0x5555558fb630)
at elf.c:6569
#4 0x00005555555aa71a in bfd_close (abfd=0x5555558fb630) at opncls.c:755
#5 0x000055555558e0a6 in copy_file (input_filename=0x7fffffffe38f
"./assert_sample_1", output_filename=0x5555558a9470 "./stY6hVic",
input_target=<optimized out>,
output_target=<optimized out>, input_arch=0x0) at objcopy.c:3639
#6 0x0000555555587a46 in strip_main (argv=<optimized out>, argc=<optimized
out>) at objcopy.c:4598
#7 main (argc=<optimized out>, argc@entry=0x6, argv=<optimized out>,
argv@entry=0x7fffffffdfc8) at objcopy.c:5779
#8 0x00007ffff7801b97 in __libc_start_main (main=0x555555586230 <main>,
argc=0x6, argv=0x7fffffffdfc8, init=<optimized out>, fini=<optimized out>,
rtld_fini=<optimized out>,
stack_end=0x7fffffffdfb8) at ../csu/libc-start.c:310
#9 0x0000555555588cca in _start ()
-------
gdb peda report:
[----------------------------------registers-----------------------------------]
RAX: 0x0
RBX: 0x555555947170 --> 0x5555558fef00 --> 0x555555918880 --> 0x5555558aa400
--> 0x5555558ac540 ("./assert_sample_1")
RCX: 0xb40 ('@\x0b')
RDX: 0x555555898ac0 --> 0xa80010200000004
RSI: 0x7ffff7bcd8b0 --> 0x0
RDI: 0x7ffff7bcc680 --> 0xfbad2887
RBP: 0x5555558fb630 --> 0x5555558fd770 ("./stY6hVic")
RSP: 0x7fffffffdba0 --> 0x5555559a0b90 --> 0x55555599ff28 --> 0x0
RIP: 0x5555555d052c (<_bfd_elf_validate_reloc+252>: movzx ecx,BYTE PTR
[rax+0x7])
R8 : 0x7ffff7bcd8b0 --> 0x0
R9 : 0x7ffff7fdd740 (0x00007ffff7fdd740)
R10: 0xa ('\n')
R11: 0x246
R12: 0x5555559bd5c8 --> 0x5555559bc910 --> 0xde840fdb85480000
R13: 0x367
R14: 0x555555947170 --> 0x5555558fef00 --> 0x555555918880 --> 0x5555558aa400
--> 0x5555558ac540 ("./assert_sample_1")
R15: 0x5555558fc810 --> 0x5555558ba757 ("__dynamic_cast")
EFLAGS: 0x10202 (carry parity adjust zero sign trap INTERRUPT direction
overflow)
[-------------------------------------code-------------------------------------]
0x5555555d0520 <_bfd_elf_validate_reloc+240>: mov rdi,rbp
0x5555555d0523 <_bfd_elf_validate_reloc+243>: call 0x55555562d610
<bfd_reloc_type_lookup>
0x5555555d0528 <_bfd_elf_validate_reloc+248>: mov rdx,QWORD PTR
[rbx+0x18]
=> 0x5555555d052c <_bfd_elf_validate_reloc+252>: movzx ecx,BYTE PTR
[rax+0x7]
0x5555555d0530 <_bfd_elf_validate_reloc+256>: movzx edi,BYTE PTR
[rdx+0x7]
0x5555555d0534 <_bfd_elf_validate_reloc+260>: xor edi,ecx
0x5555555d0536 <_bfd_elf_validate_reloc+262>: mov edx,edi
0x5555555d0538 <_bfd_elf_validate_reloc+264>: and edx,0x8
[------------------------------------stack-------------------------------------]
0000| 0x7fffffffdba0 --> 0x5555559a0b90 --> 0x55555599ff28 --> 0x0
0008| 0x7fffffffdba8 --> 0x5555558fb630 --> 0x5555558fd770 ("./stY6hVic")
0016| 0x7fffffffdbb0 --> 0x0
0024| 0x7fffffffdbb8 --> 0x5555555fe8c7 (<bfd_elf32_write_relocs+343>: test
eax,eax)
0032| 0x7fffffffdbc0 --> 0x555555918880 --> 0x5555558aa400 --> 0x5555558ac540
("./assert_sample_1")
0040| 0x7fffffffdbc8 --> 0x0
0048| 0x7fffffffdbd0 --> 0x5555555fd3f0 (<bfd_elf32_swap_reloca_out>: push
r12)
0056| 0x7fffffffdbd8 --> 0xc ('\x0c')
[------------------------------------------------------------------------------]
Legend: code, data, rodata, value
Stopped reason: SIGSEGV
0x00005555555d052c in _bfd_elf_validate_reloc (abfd=abfd@entry=0x5555558fb630,
areloc=areloc@entry=0x555555947170) at elf.c:9165
9165 if (areloc->howto->pcrel_offset != howto->pcrel_offset)
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug binutils/25200] New: strip-new: SIGSEGV in _bfd_elf_validate_reloc and assertion fail reloc.c:8229,
fdgkhdkgh at gmail dot com <=