[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] libxc: elf_kernel loader: Remove check for shstrtab
On Wed, May 15, 2019 at 01:55:30PM +0100, Anthony PERARD wrote: > On Wed, May 15, 2019 at 01:07:03PM +0100, Andrew Cooper wrote: > > On 15/05/2019 12:40, Anthony PERARD wrote: > > > This was probably useful to load ELF Note, but now ELF notes > > > "should live in a PT_NOTE segment" (elfnote.h). > > > > > > With notes living in segment, there are no need for sections, so there > > > is nothing to be stored in the shstrtab. > > > > > > This patch would allow to write a simpler ELF header for an OVMF blob > > > (which isn't an ELF) and allow it to be loaded as a PVH kernel. The > > > header only needs to declare two program segments: > > > - one to tell an ELF loader where to put the blob, > > > - one for a Xen ELFNOTE. > > > > > > The ELFNOTE is to comply to the pvh design which wants the > > > XEN_ELFNOTE_PHYS32_ENTRY to declare a blob as compaptible with the PVH > > > boot ABI. > > > > > > Note that without the ELFNOTE, libxc will load an ELF but with > > > the plain ELF loader, which doesn't check for shstrtab. > > > > > > Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> > > > --- > > > tools/libxc/xc_dom_elfloader.c | 9 --------- > > > 1 file changed, 9 deletions(-) > > > > > > diff --git a/tools/libxc/xc_dom_elfloader.c > > > b/tools/libxc/xc_dom_elfloader.c > > > index 82b5f2ee79..b327db219d 100644 > > > --- a/tools/libxc/xc_dom_elfloader.c > > > +++ b/tools/libxc/xc_dom_elfloader.c > > > @@ -165,15 +165,6 @@ static elf_negerrnoval > > > xc_dom_parse_elf_kernel(struct xc_dom_image *dom) > > > return rc; > > > } > > > > > > - /* Find the section-header strings table. */ > > > - if ( ELF_PTRVAL_INVALID(elf->sec_strtab) ) > > > - { > > > - xc_dom_panic(dom->xch, XC_INVALID_KERNEL, "%s: ELF image" > > > - " has no shstrtab", __FUNCTION__); > > > - rc = -EINVAL; > > > - goto out; > > > - } > > > > This might be fine for newer binaries, but you'll break older ones. > > > > Instead, you should skip searching for strtab if we've already located > > the Xen notes. > > :-(, maybe I should have gone futher on explaining why this check is > useless (and probably at the wrong place, at least now). > > The next thing that's done after that check is: > elf_parse_binary() > elf_xen_parse() > Those are located in "xen/common/libelf", and those are the functions > that actually takes care of extracting data from the elf. > > elf_xen_parse() first look for Xen ELFNOTE in the program segments > (phdr, PT_NOTE) and skip reading section and strtab if found. > > So, libelf already does what you asked for ;-). > > The shstrtab are only used to look for legacy __xen_guest section names. > Since ELFNOTEs was used, the name of section aren't looked at. > > I hope that help. > Andrew, do you still have concern? Wei. > Thanks, > > -- > Anthony PERARD _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |