On 08/15/2011 11:24 AM, Ken'ichi Ohmichi wrote: > > 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); > } > --- Nice catch. Agree. > >> /* >> + * 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. Do you mean having n_type set to '0' and just using 'ERASEINFO_NOTE_NAME' to identify the eraseinfo note? if Yes, then I think I am ok with that. Thanks, -Mahesh.