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