[PATCH v6 2/8] vmcore: allocate buffer for ELF headers on page-size alignment
HATAYAMA Daisuke
d.hatayama at jp.fujitsu.com
Thu May 16 20:08:08 EDT 2013
(2013/05/17 1:51), Vivek Goyal wrote:
> On Wed, May 15, 2013 at 06:05:51PM +0900, HATAYAMA Daisuke wrote:
>
> [..]
>> @@ -398,9 +403,7 @@ static int __init process_ptload_program_headers_elf64(char *elfptr,
>> phdr_ptr = (Elf64_Phdr*)(elfptr + sizeof(Elf64_Ehdr)); /* PT_NOTE hdr */
>>
>> /* First program header is PT_NOTE header. */
>> - vmcore_off = sizeof(Elf64_Ehdr) +
>> - (ehdr_ptr->e_phnum) * sizeof(Elf64_Phdr) +
>> - phdr_ptr->p_memsz; /* Note sections */
>> + vmcore_off = elfsz + roundup(phdr_ptr->p_memsz, PAGE_SIZE);
>>
>> for (i = 0; i < ehdr_ptr->e_phnum; i++, phdr_ptr++) {
>> if (phdr_ptr->p_type != PT_LOAD)
>> @@ -435,9 +438,7 @@ static int __init process_ptload_program_headers_elf32(char *elfptr,
>> phdr_ptr = (Elf32_Phdr*)(elfptr + sizeof(Elf32_Ehdr)); /* PT_NOTE hdr */
>>
>> /* First program header is PT_NOTE header. */
>> - vmcore_off = sizeof(Elf32_Ehdr) +
>> - (ehdr_ptr->e_phnum) * sizeof(Elf32_Phdr) +
>> - phdr_ptr->p_memsz; /* Note sections */
>> + vmcore_off = elfsz + roundup(phdr_ptr->p_memsz, PAGE_SIZE);
>
> Hmm.., so we are rounding up ELF note data size too here. I think this belongs
> in some other patch as in this patch we are just rounding up the elf
> headers.
>
> This might create read problems too as we have not taking care of this
> rounding when adding note to vc_list and it might happen that we are
> reading wrong data at a particular offset.
>
> So may be this rounding up we should do in later patches when we take
> care of copying ELF notes data to second kernel.
>
> Vivek
>
This is my careless fault. They should have been in 6/7.
--
Thanks.
HATAYAMA, Daisuke
More information about the kexec
mailing list