[UPDATED PATCH v2 8/8] makedumpfile: Add erase information in ELF formatted dumpfile
Ken'ichi Ohmichi
oomichi at mxs.nes.nec.co.jp
Mon Aug 15 01:54:51 EDT 2011
Hi Mahesh,
On Fri, 15 Jul 2011 14:46:02 +0530
Mahesh J Salgaonkar <mahesh at linux.vnet.ibm.com> wrote:
> @@ -4647,6 +4650,15 @@ write_cache_bufsz(struct cache_data *cd)
> }
>
> int
> +write_cache_zero(struct cache_data *cd, size_t size)
> +{
> + memset(cd->buf + cd->buf_size, 0, size);
> + cd->buf_size += size;
> +
> + return write_cache_bufsz(cd);
> +}
if cd->buf_size is a little smaller than cd->cache_size and
the argument "size" is bigger than info->page_size, the above
a SIGSEGV happens at the above memset().
Previous write_cache_bufsze() call will avoid that :
---
int
write_cache_zero(struct cache_data *cd, size_t size)
{
+ if (!write_cache_bufsz(cd))
+ return FALSE;
memset(cd->buf + cd->buf_size, 0, size);
cd->buf_size += size;
return write_cache_bufsz(cd);
}
---
> /*
> + * ELF note section for erase information
> + *
> + * According to elf.h the unused values are 0x15(21) through 0xff. The value
> + * range 0x1XX, 0x2XX and 0x3XX is been used for PPC, i386 and s390
> + * respectively.
> + *
> + * Using 0xff to be on safer side so that any new Elf Note addition in elf.h
> + * after 0x15 value would not clash.
> + */
> +#ifndef NT_ERASE_INFO
> +#define NT_ERASE_INFO (0xff) /* Contains erased information. */
> +#endif
> +#define ERASEINFO_NOTE_NAME "ERASEINFO"
> +#define ERASEINFO_NOTE_NAME_BYTES (sizeof(ERASEINFO_NOTE_NAME))
I feel NT_ERASE_INFO(0xff) is not safe and we can use ERASEINFO_NOTE_NAME
instead.
Thanks
Ken'ichi Ohmichi
More information about the kexec
mailing list