[PATCH 2/2] Avoid signed/unsigned comparsions

Simon Horman horms at verge.net.au
Thu Mar 3 19:11:04 EST 2011


On Thu, Mar 03, 2011 at 01:53:33PM -0800, Eric W. Biederman wrote:
> Simon Horman <horms at verge.net.au> writes:
> 
> At least the change of ret from ssize_t to size_t is bogus.
> pread returns a ssize_t and I am comparing it against sizeof(X).  We
> might as we type convert in the comparison.   That test is a necessary 
> and real comparison and I don't think hiding that fact with an implicit
> conversion does anything but obfuscate things.

Thanks, I'll restore ret to a ssize_t.

> 
> > Cc: Eric W. Biederman <ebiederm at xmission.com>
> > Signed-off-by: Simon Horman <horms at verge.net.au>
> > ---
> >  vmcore-dmesg/vmcore-dmesg.c |   12 ++++--------
> >  1 files changed, 4 insertions(+), 8 deletions(-)
> >
> > diff --git a/vmcore-dmesg/vmcore-dmesg.c b/vmcore-dmesg/vmcore-dmesg.c
> > index 365e293..f7eef16 100644
> > --- a/vmcore-dmesg/vmcore-dmesg.c
> > +++ b/vmcore-dmesg/vmcore-dmesg.c
> > @@ -79,8 +79,7 @@ static void read_elf32(int fd)
> >  {
> >  	Elf32_Ehdr ehdr32;
> >  	Elf32_Phdr *phdr32;
> > -	size_t phdrs32_size, phdrs_size;
> > -	ssize_t ret, i;
> > +	ssize_t phdrs32_size, phdrs_size, ret, i;
> >  
> >  	ret = pread(fd, &ehdr32, sizeof(ehdr32), 0);
> >  	if (ret != sizeof(ehdr32)) {
> > @@ -151,8 +150,7 @@ static void read_elf64(int fd)
> >  {
> >  	Elf64_Ehdr ehdr64;
> >  	Elf64_Phdr *phdr64;
> > -	size_t phdrs_size;
> > -	ssize_t ret, i;
> > +	size_t phdrs_size, ret, i;
> >  
> >  	ret = pread(fd, &ehdr64, sizeof(ehdr64), 0);
> >  	if (ret != sizeof(ehdr)) {
> > @@ -240,8 +238,7 @@ static void scan_vmcoreinfo(char *start, size_t size)
> >  	};
> >  
> >  	for (pos = start; pos <= last; pos = eol + 1) {
> > -		size_t len;
> > -		int i;
> > +		size_t len, i;
> >  		/* Find the end of the current line */
> >  		for (eol = pos; (eol <= last) && (*eol != '\n') ; eol++)
> >  			;
> > @@ -274,8 +271,7 @@ static void scan_vmcoreinfo(char *start, size_t size)
> >  static void scan_notes(int fd, loff_t start, loff_t lsize)
> >  {
> >  	char *buf, *last, *note, *next;
> > -	size_t size;
> > -	ssize_t ret;
> > +	ssize_t size, ret;
> >  
> >  	if (lsize > LONG_MAX) {
> >  		fprintf(stderr, "Unable to handle note section of %llu bytes\n",
> 



More information about the kexec mailing list