Re: [PATCH] libnfsidmap: id_as_chars() fails zero value ids.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 30 Apr 2014 11:18:28 -0400
Steve Dickson <steved@xxxxxxxxxx> wrote:

> Root has a zero value id which is valid and
> should not be mapped to nfsnobody
> 
> Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
> ---
>  libnfsidmap.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/libnfsidmap.c b/libnfsidmap.c
> index 641d766..92bc493 100644
> --- a/libnfsidmap.c
> +++ b/libnfsidmap.c
> @@ -99,8 +99,12 @@ static char * toupper_str(char *s)
>  static int id_as_chars(char *name, int *id)
>  {
>  	long int value = strtol(name, NULL, 10);
> -	if (value == 0)
> -		return 0;
> +
> +	if (value == 0) {
> +		/* zero value ids are valid */
> +		if (strcmp(name, "0") != 0)
> +			return 0;
> +	}
>  	*id = (int)value;
>  	return 1;
>  }

Well spotted. I think though that instead of doing the strcmp, you
should instead just use the endptr value in the strtol call to determine
whether the string was completely converted. If it isn't, we can just
return 0 here. If it is completely converted then you know that you got
a legit "0" string.

-- 
Jeff Layton <jlayton@xxxxxxxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux