[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 29. Apr 2019, at 17:14, Ross Lagerwall <ross.lagerwall@xxxxxxxxxx> wrote: > > 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). ACK. Will fix. Although, sometimes it makes the code pretty unreadable. > >> +{ >> + 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. Might be my paranoia again (or I am simply missing some obvious assumptions/invariants), but I explicitly wanted to check whether given section/symbol is referenced using other means than addresses. > > -- > Ross Lagerwall Best Regards, Pawel Wieczorkiewicz Amazon Development Center Germany GmbH Krausenstr. 38 10117 Berlin Geschaeftsfuehrer: Christian Schlaeger, Ralf Herbrich Ust-ID: DE 289 237 879 Eingetragen am Amtsgericht Charlottenburg HRB 149173 B _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |