bug-binutils
[Top][All Lists]
Advanced

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

[Bug gold/22883] New: Gold mis-evaluates R_X86_64_PLT32 reloc


From: nickc at redhat dot com
Subject: [Bug gold/22883] New: Gold mis-evaluates R_X86_64_PLT32 reloc
Date: Fri, 23 Feb 2018 06:52:01 +0000

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

            Bug ID: 22883
           Summary: Gold mis-evaluates R_X86_64_PLT32 reloc
           Product: binutils
           Version: 2.31 (HEAD)
            Status: NEW
          Severity: normal
          Priority: P2
         Component: gold
          Assignee: ccoutant at gmail dot com
          Reporter: nickc at redhat dot com
                CC: ian at airs dot com
  Target Milestone: ---

Created attachment 10845
  --> https://sourceware.org/bugzilla/attachment.cgi?id=10845&action=edit
Object files and shell script to demonstaret the bug

Hi Guys,

  It appears that Gold can mis-evaluate a R_X86_64_PLT32 reloc, creating an
invalid executable:

  % objdump -dr pscopyca.o
  [...]
   2d1: e8 fc ff ff ff          callq  2d2 <mx_ippsZero_16s+0x14>
                        2d2: R_X86_64_PLT32     mx_ownsZero_8u
   [...]

  % gcc codectest.c.o pscopyca.o -o gold.exe -fuse-ld=gold 
  % ./gold.exe
  Segmentation fault (core dumped)

  % objdump -d gold.exe
  [...]
  4007d9:       e8 36 ff ff ff          callq  400714  <mx_ownsZero_8u+0x4>
  [...]

  So the callq instruction branches into the middle of the mx_ownsZero_8u
  function.

  By contract the bfd linker generates a working binary, with a correct 
  call to  mx_ownsZero_8u:

  % objdump -d bfd.exe
  [...]
  400779:       e8 32 ff ff ff          callq  4006b0 <mx_ownsZero_8u>
  [...]

Cheers
  Nick

PS.  This bug has also been reported on the Fedora bigzilla system:

https://bugzilla.redhat.com/show_bug.cgi?id=1547747

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