Skip to content

llvm-readelf crash when reading .tbd files #89534

Open
@truboxl

Description

@truboxl

I installed llvm-18-dev from https://apt.llvm.org on Ubuntu 22.04.4 LTS
https://github.com/ziglang/zig/blob/master/lib/libc/darwin/libSystem.tbd
https://github.com/ziglang/zig/blob/f3ff0b6e6df1148978bab32c9f37bfcd3452fad0/lib/libc/darwin/libSystem.11.tbd
https://github.com/ziglang/zig/blob/f3ff0b6e6df1148978bab32c9f37bfcd3452fad0/lib/libc/darwin/libSystem.12.tbd
https://github.com/ziglang/zig/blob/f3ff0b6e6df1148978bab32c9f37bfcd3452fad0/lib/libc/darwin/libSystem.13.tbd

$ /usr/lib/llvm-18/bin/llvm-readelf --version
Ubuntu LLVM version 18.1.3
  Optimized build.
$ /usr/lib/llvm-18/bin/llvm-readelf -h libSystem.11.tbd
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /usr/lib/llvm-18/bin/llvm-readelf -h libSystem.11.tbd
 #0 0x00007f13b404b256 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be9256)
 #1 0x00007f13b4049210 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be7210)
 #2 0x00007f13b404b91b (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be991b)
 #3 0x00007f13aff40520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007f13b58830bc llvm::object::WindowsResource::getHeadEntry() (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x54210bc)
 #5 0x000055f595d0e078 (/usr/lib/llvm-18/bin/llvm-readelf+0x1c0078)
 #6 0x000055f595cfcbde (/usr/lib/llvm-18/bin/llvm-readelf+0x1aebde)
 #7 0x000055f595d150f6 (/usr/lib/llvm-18/bin/llvm-readelf+0x1c70f6)
 #8 0x00007f13aff27d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
 #9 0x00007f13aff27e40 call_init ./csu/../csu/libc-start.c:128:20
#10 0x00007f13aff27e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#11 0x000055f595bae7b5 (/usr/lib/llvm-18/bin/llvm-readelf+0x607b5)
Segmentation fault
$ /usr/lib/llvm-18/bin/llvm-readelf -h libSystem.12.tbd
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /usr/lib/llvm-18/bin/llvm-readelf -h libSystem.12.tbd
 #0 0x00007fbeab0f1256 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be9256)
 #1 0x00007fbeab0ef210 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be7210)
 #2 0x00007fbeab0f191b (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be991b)
 #3 0x00007fbea6fe6520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007fbeac9290bc llvm::object::WindowsResource::getHeadEntry() (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x54210bc)
 #5 0x00005619081fc078 (/usr/lib/llvm-18/bin/llvm-readelf+0x1c0078)
 #6 0x00005619081eabde (/usr/lib/llvm-18/bin/llvm-readelf+0x1aebde)
 #7 0x00005619082030f6 (/usr/lib/llvm-18/bin/llvm-readelf+0x1c70f6)
 #8 0x00007fbea6fcdd90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
 #9 0x00007fbea6fcde40 call_init ./csu/../csu/libc-start.c:128:20
#10 0x00007fbea6fcde40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#11 0x000056190809c7b5 (/usr/lib/llvm-18/bin/llvm-readelf+0x607b5)
Segmentation fault
$ /usr/lib/llvm-18/bin/llvm-readelf -h libSystem.13.tbd
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /usr/lib/llvm-18/bin/llvm-readelf -h libSystem.13.tbd
 #0 0x00007f77c7d3d256 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be9256)
 #1 0x00007f77c7d3b210 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be7210)
 #2 0x00007f77c7d3d91b (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be991b)
 #3 0x00007f77c3c32520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007f77c95750bc llvm::object::WindowsResource::getHeadEntry() (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x54210bc)
 #5 0x0000564d020ac078 (/usr/lib/llvm-18/bin/llvm-readelf+0x1c0078)
 #6 0x0000564d0209abde (/usr/lib/llvm-18/bin/llvm-readelf+0x1aebde)
 #7 0x0000564d020b30f6 (/usr/lib/llvm-18/bin/llvm-readelf+0x1c70f6)
 #8 0x00007f77c3c19d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
 #9 0x00007f77c3c19e40 call_init ./csu/../csu/libc-start.c:128:20
#10 0x00007f77c3c19e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#11 0x0000564d01f4c7b5 (/usr/lib/llvm-18/bin/llvm-readelf+0x607b5)
Segmentation fault
$ /usr/lib/llvm-18/bin/llvm-readelf -h libSystem.tbd
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /usr/lib/llvm-18/bin/llvm-readelf -h libSystem.tbd
 #0 0x00007f242c2a4256 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be9256)
 #1 0x00007f242c2a2210 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be7210)
 #2 0x00007f242c2a491b (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be991b)
 #3 0x00007f2428199520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007f242dadc0bc llvm::object::WindowsResource::getHeadEntry() (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x54210bc)
 #5 0x000055b59c725078 (/usr/lib/llvm-18/bin/llvm-readelf+0x1c0078)
 #6 0x000055b59c713bde (/usr/lib/llvm-18/bin/llvm-readelf+0x1aebde)
 #7 0x000055b59c72c0f6 (/usr/lib/llvm-18/bin/llvm-readelf+0x1c70f6)
 #8 0x00007f2428180d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
 #9 0x00007f2428180e40 call_init ./csu/../csu/libc-start.c:128:20
#10 0x00007f2428180e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#11 0x000055b59c5c57b5 (/usr/lib/llvm-18/bin/llvm-readelf+0x607b5)
Segmentation fault

This is not an issue with GNU readelf though.

$ readelf --version
GNU readelf (GNU Binutils for Ubuntu) 2.38
Copyright (C) 2022 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
$ readelf -h libSystem*.tbd

File: libSystem.11.tbd
readelf: Error: Not an ELF file - it has the wrong magic bytes at the start

File: libSystem.12.tbd
readelf: Error: Not an ELF file - it has the wrong magic bytes at the start

File: libSystem.13.tbd
readelf: Error: Not an ELF file - it has the wrong magic bytes at the start

File: libSystem.tbd
readelf: Error: Not an ELF file - it has the wrong magic bytes at the start

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions