bug-binutils
[Top][All Lists]
Advanced

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

[Bug binutils/24048] New: memory leaks in readelf


From: 0x0keeper at gmail dot com
Subject: [Bug binutils/24048] New: memory leaks in readelf
Date: Mon, 31 Dec 2018 04:56:28 +0000

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

            Bug ID: 24048
           Summary: memory leaks in readelf
           Product: binutils
           Version: 2.31
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: binutils
          Assignee: unassigned at sourceware dot org
          Reporter: 0x0keeper at gmail dot com
  Target Milestone: ---

Created attachment 11502
  --> https://sourceware.org/bugzilla/attachment.cgi?id=11502&action=edit
binutils-readelf-memory-leak

hi,binutils team,I found a memory leaks bug in binutils-2.31 with readelf.it is
latest release.

./binutils/readelf -a binutils-readelf-memory-leak

ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 80 13 00 00 00 00 00 00
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       128
  Type:                              EXEC (Executable file)
  Machine:                           MIPS R4000 big-endian
  Version:                           0x8e50001
  Entry point address:               0x8e5
  Start of program headers:          64 (bytes into file)
  Start of section headers:          8632 (bytes into file)
  Flags:                             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         10
  Size of section headers:           64 (bytes)
  Number of section headers:         27
  Section header string table index: 26

Section Headers:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
  [ 0]                   NULL             0000000000000000  00000000
       0000000000000000  0000000000000000           0     0     0
  [ 1] .interp           PROGBITS         0000000000400270  00000270
       000000000000001c  0000000000000000   A       0     0     1
  [ 2] .note.ABI-tag     NOTE             000000000040028c  0000028c
       0000000000000020  0000040000000000   A       0     0     4
  [ 3] .gnu.hash         GNU_HASH         00000000004002b0  000002b0
       0000000000000028  0000000000000000   A       4     0     8
  [ 4] .dynsym           DYNSYM           00000000004002d8  000002d8
       00000000000020f8  0000000000000018   A       5     1     8
  [ 5] <corrupt>         STRTAB           00000000004004d0  000004d0
       00000000000000c4  0000000000000000   A       0     0     1
  [ 6] .gnu.version      VERSYM           0000000000400594  00000594
       000000000000002a  0000000000000002   A       4     0     2
  [ 7] .gnu.version_r    VERNEED          00000000004005c0  000005c0
       0000000000000030  0000000000000000   A       5     1     8
  [ 8] .rela.dyn         LOUSER+0x70ffff  00000000004005f0  000005f0
       0000000000000048  0000000000000018   A       4     0     8
  [ 9] .rela.plt         RELA             0000000000400638  00000638
       00000000000001b0  0000000000000018  AI       4    11     8
  [10] .init             PROGBITS         00000000004007e8  000007e8
       000000000000001a  0000000000000000  AX       0     0     4
  [11] .plt              PROGBITS         0000000000400810  00000810
       0000000000000130  0000000000000010  AX       0     0     16
  [12] .text             PROGBITS         0000000000400940  00000940
       00000000000004b2  0000000000000000  AX       0     0     16
  [13] .fini             PROGBITS         1c00000000400df4  00000df4
       0000000000000009  0000000000000000  AX       0     0     4
  [14] .rodata           PROGBITS         0000000000400e00  00000e00
       0000000000000380  0000000000000000   A       0     0     64
  [15] .eh_frame_hdr     PROGBITS         0000000000401180  00001180
       000000000000004c  0000000000000000   A       0     0     4
  [16] .eh_frame         PROGBITS         00000000004011d0  000011d0
       000000000000015c  0000000000000000   A       0     0     8
  [17] .init_array       INIT_ARRAY       0000000000601e10  00001e10
       0000000000000008  0000000000000000  WA       0     0     8
  [18] .fini_array       FINI_ARRAY       0000000000601e18  00040000
       0000000000000008  0000000000000000  WA       0     0     8
  [19] .jcr              PROGBITS         0000000000601e20  00001e20
       0000000000000008  0000000000000000  WA       0     0     8
  [20] .dynamic          DYNAMIC          0000000000601e28  00001e28
       00000000000001d0  0000000000000010  WA       5     0     8
  [21] .got              PROGBITS         0000000000601ff8  00001ff8
       0000000000000008  0000000000000008  WA       0     0     8
  [22] .got.plt          PROGBITS         0000000000602000  00002000
       00000000000000a8  0000000000000008  WA       0     0     8
  [23] .data             PROGBITS         00000000006020a8  000020a8
       0000000000000010  0000000000000000  WA       0     0     8
  [24] .bss              NOBITS           00000000006020c0  000020b8
       0000000000000038  0000000000000000  WA       0     0     32
  [25] .gnu_debuglink    PROGBITS         00ffed0000000000  000020b8
       0000000000000014  0000000000000000           0     0     1
  [26] .shstrtab         STRTAB           0000000000000000  000020cc
       00000000000000eb  0000000000000000           0     0     1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
  L (link order), O (extra OS processing required), G (group), T (TLS),
  C (compressed), x (unknown), o (OS specific), E (exclude),
  p (processor specific)

There are no section groups in this file.

Program Headers:
  Type           Offset             VirtAddr           PhysAddr
                 FileSiz            MemSiz              Flags  Align
  PHDR           0x0000000000000040 0x0000000000400040 0x0000000000400040
                 0x0000000000000230 0x0000000000000230  R E    0x8
readelf: Error: the PHDR segment is not covered by a LOAD segment
  INTERP         0x0000000000000270 0x0000000000400270 0x0000000000400270
                 0x000000000000001c 0x000000000000001c  R      0x1
      [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
  LOAD           0x0000000000000000 0x0000000000400096 0x0000000000400000
                 0x000000000000132c 0x000000000000132c  R E    0x200000
  LOAD           0x0000000000001e10 0x0000000000601e10 0x0000000000601e10
                 0x00000000000002a8 0x00000000000002e8  RW     0x200000
  DYNAMIC        0x0000000000001e28 0x0000000000601e28 0x0000000000601e28
                 0x00000000000001d0 0x00000000000001d0  RW     0x8
  NOTE           0x000000000000028c 0x000000000040028c 0x000000000040028c
                 0x0000000000000020 0x0000000000000000  R      0x0
  GNU_EH_FRAME   0x0000000000001180 0x0000000000401180 0x0000000000401180
                 0x000000000000004c 0x000000000000004c  R      0x4
  GNU_STACK      0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000000000 0x0000000000000000  RW     0x10
  GNU_RELRO      0x0000000000001e10 0x0000000000601e10 0x0000000000421e10
                 0x00000000000001f0 0x00000000000001f0  R      0x1
  LOOS+0x5041580 0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000000000 0x0000000000000000         0x8

 Section to Segment mapping:
  Segment Sections...
   00
   01     .interp
   02     .interp .note.ABI-tag .gnu.hash <corrupt> .gnu.version .gnu.version_r
.rela.dyn .rela.plt .init .plt .text .rodata .eh_frame_hdr .eh_frame
   03     .init_array .jcr .dynamic .got .got.plt .data .bss
   04     .dynamic
   05
   06     .eh_frame_hdr
   07
   08     .init_array .jcr .dynamic .got
   09

Dynamic section at offset 0x1e28 contains 24 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: []
 0x000000000000000c (INIT)               0x4007e8
 0x000000000000000d (FINI)               0x400df4
 0x0000000000000019 (INIT_ARRAY)         0x601e10
 0x000000000000001b (INIT_ARRAYSZ)       8 (bytes)
 0x000000000000001a (FINI_ARRAY)         0x601e18
 0x000000000000001c (FINI_ARRAYSZ)       8 (bytes)
 0x000000006ffffef5 (GNU_HASH)           0x4002b0
 0x0000000000000005 (STRTAB)             0x4004d0
 0x0000000000000006 (SYMTAB)             0x4002d8
 0x000000000000000a (STRSZ)              196 (bytes)
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000015 (DEBUG)              0x0
 0x0000000000000003 (PLTGOT)             0x602000
 0x0000000000000002 (PLTRELSZ)           432 (bytes)
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000017 (JMPREL)             0x400638
 0x0000000000000007 (RELA)               0x4005f0
 0x0000000000000008 (RELASZ)             72 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x000000006ffffffe (VERNEED)            0x4005c0
 0x000000007000000a (MIPS_LOCAL_GOTNO)   1
 0x000000006ffffff0 (VERSYM)             0x400594
 0x0000000000000000 (NULL)               0x0

Relocation section '.rela.plt' at offset 0x638 contains 18 entries:
  Offset          Info           Type           Sym. Value    Sym. Name +
Addend
000000602018  000100000007 R_MIPS_GPREL16   readelf: Error: Reading 16 bytes
extends past end of file for version need aux (3)
readelf: Error: Reading 16 bytes extends past end of file for version need
 0000000000000000 free + 0
000000602020  000200000007 R_MIPS_GPREL16   readelf: Error: Reading 16 bytes
extends past end of file for version need aux (3)
readelf: Error: Reading 16 bytes extends past end of file for version need
 0000000000000000 __errno_location + 0
000000602028  000300000007 R_MIPS_GPREL16   readelf: Error: Reading 16 bytes
extends past end of file for version need aux (3)
readelf: Error: Reading 16 bytes extends past end of file for version need
 0000000000000000 strcpy + 0
000000602030  000400000007 R_MIPS_GPREL16   readelf: Error: Reading 16 bytes
extends past end of file for version need aux (3)
readelf: Error: Reading 16 bytes extends past end of file for version need
 0000000000000000 puts + 0
000000602038  000500000007 R_MIPS_GPREL16   readelf: Error: Reading 16 bytes
extends past end of file for version need aux (3)
readelf: Error: Reading 16 bytes extends past end of file for version need
 0000000000000000 getopt_long + 0
000000602040  000600000007 R_MIPS_GPREL16   readelf: Error: Reading 16 bytes
extends past end of file for version need aux (3)
readelf: Error: Reading 16 bytes extends past end of file for version need
 0000000000000000 printf + 0
000000602048  080000000007 R_MIPS_GPREL16   readelf: Error:  bad symbol index:
00000800 in reloc
000060205800  090000000700 unrecognized: 700    readelf: Error:  bad symbol
index: 00000900 in reloc
000060206000  0a0000000700 unrecognized: 700    readelf: Error:  bad symbol
index: 00000a00 in reloc
000060206800  0b0000000700 unrecognized: 700    readelf: Error:  bad symbol
index: 00000b00 in reloc
000060207000  0c0000000700 unrecognized: 700    readelf: Error:  bad symbol
index: 00000c00 in reloc
000060207800  0d0000000700 unrecognized: 700    readelf: Error:  bad symbol
index: 00000d00 in reloc
000060208000  0e0000000700 unrecognized: 700    readelf: Error:  bad symbol
index: 00000e00 in reloc
000060208800  0f0000000700 unrecognized: 700    readelf: Error:  bad symbol
index: 00000f00 in reloc
000060209000  100040002900 unrecognized: 40002900readelf: Error:  bad symbol
index: 00001000 in reloc
000060209800  110000000700 unrecognized: 700    readelf: Error:  bad symbol
index: 00001100 in reloc
00006020a000  120000000700 unrecognized: 700    readelf: Error:  bad symbol
index: 00001200 in reloc
58b4808ec834800  74c0854800201805 unrecognized: 201805 readelf: Error:  bad
symbol index: 74c08548 in reloc

The decoding of unwind sections for machine type MIPS R4000 big-endian is not
currently supported.

Version symbols section '.gnu.version' contains 21 entries:
 Addr: 0000000000400594  Offset: 0x000594  Link: 4 (.dynsym)
  000:7000 readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need
             7475 readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need
               73 readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need
             7473 readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need

  004:7472 readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need
             6c6f readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need
             5f00 readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need
             655f readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need

  008:7272 readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need
             6f6e readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need
             6c5f readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need
             636f readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need

  00c:7461 readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need
             6f69 readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need
               6e readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need
             656d readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need

  010:636d readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need
             7970 readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need
             6d00 readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need
             6c61 readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need

  014:6f6c readelf: Error: Reading 16 bytes extends past end of file for
version need aux (2)
readelf: Error: Reading 16 bytes extends past end of file for version need


Version needs section '.gnu.version_r' contains 1 entry:
 Addr: 0x00000000004005c0  Offset: 0x0005c0  Link: 5 (<corrupt>)
  000000: Version: 1  File:   Cnt: 2
  0x0010:   Name: tempnam  Flags: none  Version: 3
  0x0020:   Name: trdup  Flags: none  Version: 2

Displaying notes found in: .note.ABI-tag
  Owner                 Data size       Description
  GNU                  0x00000010       NT_GNU_ABI_TAG (ABI version tag)
    OS: Linux, ABI: 2.6.32

Primary GOT:
 Canonical gp value: 0000000000609ff0

 Reserved entries:
           Address     Access          Initial Purpose
  0000000000602000 -32752(gp) 0000000000601e28 Lazy resolver


=================================================================
==10625==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 528 byte(s) in 1 object(s) allocated from:
    #0 0x4b91a8  (/root/binutils-2.31/binutils/readelf+0x4b91a8)
    #1 0x5d275a  (/root/binutils-2.31/binutils/readelf+0x5d275a)
    #2 0x50b810  (/root/binutils-2.31/binutils/readelf+0x50b810)
    #3 0x4ee043  (/root/binutils-2.31/binutils/readelf+0x4ee043)
    #4 0x7fa75797e82f  (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)

SUMMARY: AddressSanitizer: 528 byte(s) leaked in 1 allocation(s).

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