Hi, I was working on code that adds an ELF section containing custom metadata to ELF binaries when I started getting odd segfaults in the added-to binary.
I've managed to create a minimal reproducer with a couple interesting discoveries. The reproducer is available here: https://github.com/danobi/elf-segfault Basically it does a noop round trip between elf_begin() and elf_update(). But the resulting binary, when run, outputs: $ ./testprog_copy fish: Job 1, './testprog_copy' terminated by signal SIGSEGV (Address boundary error) Furthermore, I built and ran tests/addsections.c [0] against my testbinary and I still get: $ ./testprog_copy_elfutils fish: Job 1, './testprog_copy_elfutils' terminated by signal SIGSEGV (Address boundary error) I've also tried linking against upstream libelf built from source with the same results. This leads me to believe I'm doing something very wrong or I'm hitting a bug. If it's helps, I'm using elfutils on archlinux with the following package information: $ pacman -Qi libelf Name : libelf Version : 0.190-1 Description : Handle ELF object files and DWARF debugging information (libraries) Architecture : x86_64 URL : https://sourceware.org/elfutils/ [...] [0]: https://sourceware.org/git/?p=elfutils.git;a=blob;f=tests/addsections.c;hb=HEAD Thanks, Daniel