[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 for-4.8] libelf: fix symtab/strtab loading for 32bit domains
>>> On 13.10.16 at 14:48, <roger.pau@xxxxxxxxxx> wrote: > @@ -174,8 +171,8 @@ void elf_parse_bsdsyms(struct elf_binary *elf, uint64_t > pstart) > /* Space to store the size of the elf image */ > sz = sizeof(uint32_t); > > - /* Space for the elf and elf section headers */ > - sz += elf_uval(elf, elf->ehdr, e_ehsize) + > + /* Space for the elf header and elf section headers */ > + sz += offsetof(struct elf_sym_header, elf_header.section) + > ELF_BSDSYM_SECTIONS * elf_uval(elf, elf->ehdr, e_shentsize); You've retained the inconsistency which I had asked to eliminate when commenting on v2. > --- a/xen/include/xen/libelf.h > +++ b/xen/include/xen/libelf.h > @@ -432,6 +432,16 @@ struct elf_dom_parms { > uint64_t virt_kend; > }; > > +/* Number of section header needed in order to fit the SYMTAB and STRTAB. */ > +#define ELF_BSDSYM_SECTIONS 3 > +struct elf_sym_header { > + uint32_t size; > + struct { > + elf_ehdr header; > + elf_shdr section[ELF_BSDSYM_SECTIONS]; > + } elf_header; > +} __attribute__((packed)); This doesn't belong here - it's still an internal structure. At most this might go into libelf-private.h, but I think best would be to keep in the C file, just moving it up (and out of any function) there. And if you were to move it into _any_ header, the comment would need adjustment to make clear what part of the loader this actually is relevant for. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |