On Fri, 15 Apr 2011 07:25:53 -0400
Jeff Layton <[email protected]> wrote:

> It currently test to see if errno == -EINVAL and whether the endptr
> is '\0'. That's not correct however. What we really want it to do is
> check to see if any error occurred by setting errno to 0 before the
> conversion. If one did, then try to treat the value as a name.
> 
> Also fix a bogus compiler warning about cruid being uninitialized.
> 
> Signed-off-by: Jeff Layton <[email protected]>
> ---
>  mount.cifs.c |   11 +++++++----
>  1 files changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/mount.cifs.c b/mount.cifs.c
> index 29b0d4c..9d7e107 100644
> --- a/mount.cifs.c
> +++ b/mount.cifs.c
> @@ -861,7 +861,7 @@ parse_options(const char *data, struct parsed_mount_info 
> *parsed_info)
>       int got_uid = 0;
>       int got_cruid = 0;
>       int got_gid = 0;
> -     uid_t uid, cruid;
> +     uid_t uid, cruid = 0;
>       gid_t gid;
>       char *ep;
>       struct passwd *pw;
> @@ -1031,8 +1031,9 @@ parse_options(const char *data, struct 
> parsed_mount_info *parsed_info)
>                               goto nocopy;
>  
>                       got_uid = 1;
> +                     errno = 0;
>                       uid = strtoul(value, &ep, 10);
> -                     if (errno != EINVAL && *ep == '\0')
> +                     if (errno == 0)
>                               goto nocopy;
>  
>                       pw = getpwnam(value);
> @@ -1049,8 +1050,9 @@ parse_options(const char *data, struct 
> parsed_mount_info *parsed_info)
>                               goto nocopy;
>  
>                       got_cruid = 1;
> +                     errno = 0;
>                       cruid = strtoul(value, &ep, 10);
> -                     if (errno != EINVAL && *ep == '\0')
> +                     if (errno == 0)
>                               goto nocopy;
>  
>                       pw = getpwnam(value);
> @@ -1066,8 +1068,9 @@ parse_options(const char *data, struct 
> parsed_mount_info *parsed_info)
>                               goto nocopy;
>  
>                       got_gid = 1;
> +                     errno = 0;
>                       gid = strtoul(value, &ep, 10);
> -                     if (errno != EINVAL && *ep == '\0')
> +                     if (errno == 0)
>                               goto nocopy;
>  
>                       gr = getgrnam(value);

Committed...

-- 
Jeff Layton <[email protected]>
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to