[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH for-4.8] libelf: fix symtab/strtab loading for 32bit domains



>>> On 05.10.16 at 18:17, <roger.pau@xxxxxxxxxx> wrote:
> On Wed, Oct 05, 2016 at 09:51:06AM -0600, Jan Beulich wrote:
>> >>> On 05.10.16 at 17:11, <roger.pau@xxxxxxxxxx> wrote:
>> > +    /*
>> > +     * Load the section headers.
>> > +     *
>> > +     * NB: this _must_ be done one by one, and taking the bitness into 
>> > account,
>> > +     * so that the guest can treat this as an array of type 
>> > Elf{32/64}_Shdr.
>> > +     */
>> > +    shdr_size = elf_64bit(elf) ? sizeof(Elf64_Shdr) : sizeof(Elf32_Shdr);
>> > +    for ( i = 0; i < ELF_BSDSYM_SECTIONS; i++ )
>> > +    {
>> > +        if ( elf_64bit(elf) )
>> > +            shdr = &header.elf_header.section[i].e64;
>> > +        else
>> > +            shdr = &header.elf_header.section[i].e32;
>> > +
>> > +        rc = elf_load_image(elf, header_base + ehdr_size + shdr_size * i,
>> > +                            ELF_REALPTR2PTRVAL(shdr), shdr_size, 
>> > shdr_size);
>> 
>> You shouldn't read shdr_size bytes here, but only sizeof() ones.
> 
> Well, shdr_size is just the result of a sizeof.

Oh, I didn't even spot that - it makes things worse: The value gets
retrieved correctly earlier on.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.