[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [livepatch-build-tools part2 2/6] common: Add is_referenced_section() helper function
On 4/16/19 1:07 PM, Pawel Wieczorkiewicz wrote: This function checks if given section has an included corresponding RELA section and/or any of the symbols table symbols references the section. Section associated symbols are ignored here as there is always such a symbol for every section. Signed-off-by: Pawel Wieczorkiewicz <wipawel@xxxxxxxxx> Reviewed-by: Andra-Irina Paraschiv <andraprs@xxxxxxxxxx> Reviewed-by: Bjoern Doebel <doebel@xxxxxxxxx> Reviewed-by: Norbert Manthey <nmanthey@xxxxxxxxx> --- common.c | 22 +++++++++++++++++++++- common.h | 1 + 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/common.c b/common.c index 1fb07cb..c968299 100644 --- a/common.c +++ b/common.c @@ -15,7 +15,7 @@int is_rela_section(struct section *sec){ - return (sec->sh.sh_type == SHT_RELA); + return sec && (sec->sh.sh_type == SHT_RELA); }int is_local_sym(struct symbol *sym)@@ -270,6 +270,26 @@ int is_standard_section(struct section *sec) } }+int is_referenced_section(const struct section *sec, const struct kpatch_elf *kelf) Let's keep to 80 chars where practical (and throughout the rest of the patches). +{ + struct symbol *sym; + + if (is_rela_section(sec->rela) && sec->rela->include) + return true; + + list_for_each_entry(sym, &kelf->symbols, list) { + if (!sym->include || !sym->sec) + continue; + /* Ignore section associated sections */ + if (sym->type == STT_SECTION) + continue; + if (sym->sec->index == sec->index) + return true; You can simplify this check to `sym->sec == sec` like the rest of the code does. -- Ross Lagerwall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |