[dpdk-dev] [PATCH] eal: fix check number of bytes from read function

Thomas Monjalon thomas.monjalon at 6wind.com
Thu Jul 21 16:35:44 CEST 2016


Hi,

2016-07-20 16:24, Michal Jastrzebski:
> -	if (read(fd, &page, sizeof(uint64_t)) < 0) {
> +
> +	retval = read(fd, &page, sizeof(uint64_t));
> +	if (retval < 0) {
>  		RTE_LOG(ERR, EAL, "%s(): cannot read /proc/self/pagemap: %s\n",
>  				__func__, strerror(errno));
>  		close(fd);
>  		return RTE_BAD_PHYS_ADDR;
> +	}	else if (retval >= 0 && retval < (int)sizeof(uint64_t))	{

I have 4 comments about the above line:
- the check retval >= 0 is not needed because implied by else
- why not checking retval != sizeof(uint64_t) as it is the exact expected value?
- (int)sizeof(uint64_t) can be replaced by 8 but it's shorter ;)
- only 1 space is required between } and else

> +		RTE_LOG(ERR, EAL, "%s(): read %d bytes from /proc/self/pagemap "
> +				"but expected %d: %s\n",
> +				__func__, retval, (int)sizeof(uint64_t), strerror(errno));

Are you sure errno is meaningful here?

> +		close(fd);
> +		return RTE_BAD_PHYS_ADDR;
>  	}



More information about the dev mailing list