]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
objtool: Propagate elf_truncate_section() error in elf_write()
authorJosh Poimboeuf <jpoimboe@kernel.org>
Wed, 17 Sep 2025 16:03:23 +0000 (09:03 -0700)
committerJosh Poimboeuf <jpoimboe@kernel.org>
Tue, 14 Oct 2025 21:45:23 +0000 (14:45 -0700)
Properly check and propagate the return value of elf_truncate_section()
to avoid silent failures.

Acked-by: Petr Mladek <pmladek@suse.com>
Tested-by: Joe Lawrence <joe.lawrence@redhat.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
tools/objtool/elf.c

index b009d9feed760df746a9974087952929a102e930..19e249f4783cf3103a2d683139a0191a8c47e29c 100644 (file)
@@ -1307,7 +1307,6 @@ static int elf_truncate_section(struct elf *elf, struct section *sec)
        for (;;) {
                /* get next data descriptor for the relevant section */
                data = elf_getdata(s, data);
-
                if (!data) {
                        if (size) {
                                ERROR("end of section data but non-zero size left\n");
@@ -1343,8 +1342,8 @@ int elf_write(struct elf *elf)
 
        /* Update changed relocation sections and section headers: */
        list_for_each_entry(sec, &elf->sections, list) {
-               if (sec->truncate)
-                       elf_truncate_section(elf, sec);
+               if (sec->truncate && elf_truncate_section(elf, sec))
+                       return -1;
 
                if (sec_changed(sec)) {
                        s = elf_getscn(elf->elf, sec->idx);