]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
objtool: Fix data alignment in elf_add_data()
authorJosh Poimboeuf <jpoimboe@kernel.org>
Thu, 5 Mar 2026 03:31:20 +0000 (19:31 -0800)
committerJosh Poimboeuf <jpoimboe@kernel.org>
Fri, 6 Mar 2026 15:53:36 +0000 (07:53 -0800)
Any data added to a section needs to be aligned in accordance with the
section's sh_addralign value.  Particularly strings added to a .str1.8
section.  Otherwise you may get some funky strings.

Fixes: dd590d4d57eb ("objtool/klp: Introduce klp diff subcommand for diffing object files")
Link: https://patch.msgid.link/d962fc0ca24fa0825cca8dad71932dccdd9312a9.1772681234.git.jpoimboe@kernel.org
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
tools/objtool/elf.c

index 2c02c7b492658c7a4a607602a08125531f4b4a46..3da90686350d715bf46e0fca7e32c64407ca91a6 100644 (file)
@@ -1375,7 +1375,7 @@ void *elf_add_data(struct elf *elf, struct section *sec, const void *data, size_
                memcpy(sec->data->d_buf, data, size);
 
        sec->data->d_size = size;
-       sec->data->d_align = 1;
+       sec->data->d_align = sec->sh.sh_addralign;
 
        offset = ALIGN(sec->sh.sh_size, sec->sh.sh_addralign);
        sec->sh.sh_size = offset + size;