From 7352145d683095b020fe66b8ea6cc6aa18e091a3 Mon Sep 17 00:00:00 2001 From: Misono Tomohiro Date: Wed, 14 Sep 2022 20:48:00 +0900 Subject: [PATCH] WIP: create-diff-object: keep ubsan section If CONIFIG_UBSAN is enabled, ubsan section (.data..Lubsan_{data,type}) can be created. Keep them unconditionally. NOTE: This patch needs to be verified. Signed-off-by: Misono Tomohiro --- kpatch-build/create-diff-object.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kpatch-build/create-diff-object.c b/kpatch-build/create-diff-object.c index a0e102ea1..79d4cf1b7 100644 --- a/kpatch-build/create-diff-object.c +++ b/kpatch-build/create-diff-object.c @@ -1656,6 +1656,7 @@ static void kpatch_replace_sections_syms(struct kpatch_elf *kelf) !strcmp(rela->sym->name, ".fixup") || !strcmp(rela->sym->name, ".altinstr_replacement") || !strcmp(rela->sym->name, ".altinstr_aux") || + !strncmp(rela->sym->name, ".data..Lubsan", 13) || !strcmp(rela->sym->name, ".text..refcount")) continue; @@ -1819,7 +1820,8 @@ static void kpatch_verify_patchability(struct kpatch_elf *kelf) (!strncmp(sec->name, ".data", 5) || !strncmp(sec->name, ".bss", 4)) && !is_data_once_section(sec->name) && - !is_data_unlikely_section(sec->name)) { + !is_data_unlikely_section(sec->name) && + strncmp(sec->name, ".data..Lubsan", 13)) { log_normal("data section %s selected for inclusion\n", sec->name); errs++; @@ -1915,6 +1917,7 @@ static void kpatch_include_standard_elements(struct kpatch_elf *kelf) !strcmp(sec->name, ".symtab") || !strcmp(sec->name, ".toc") || !strcmp(sec->name, ".rodata") || + !strncmp(sec->name, ".data..Lubsan", 13) || is_string_literal_section(sec)) { kpatch_include_section(sec); }