Acked-by: Igor Mammedov <[email protected]>

On Fri, Jan 7, 2011 at 5:11 PM, Jeff Layton <[email protected]> wrote:
> Signed-off-by: Jeff Layton <[email protected]>
> ---
>  cifs.upcall.c |   28 +++++++++++++---------------
>  1 files changed, 13 insertions(+), 15 deletions(-)
>
> diff --git a/cifs.upcall.c b/cifs.upcall.c
> index 34b0638..33b7e4c 100644
> --- a/cifs.upcall.c
> +++ b/cifs.upcall.c
> @@ -675,6 +675,7 @@ int main(const int argc, char *const argv[])
>        char hostbuf[NI_MAXHOST], *host;
>        struct decoded_args arg;
>        const char *oid;
> +       uid_t uid;
>
>        hostbuf[0] = '\0';
>        memset(&arg, 0, sizeof(arg));
> @@ -748,27 +749,24 @@ int main(const int argc, char *const argv[])
>                goto out;
>        }
>
> -       if (!legacy_uid && (have & DKD_HAVE_CREDUID)) {
> -               rc = setuid(arg.creduid);
> -               if (rc == -1) {
> -                       syslog(LOG_ERR, "setuid: %s", strerror(errno));
> -                       goto out;
> -               }
> -               ccname = find_krb5_cc(CIFS_DEFAULT_KRB5_DIR, arg.creduid);
> -       } else if (have & DKD_HAVE_UID) {
> -               rc = setuid(arg.uid);
> -               if (rc == -1) {
> -                       syslog(LOG_ERR, "setuid: %s", strerror(errno));
> -                       goto out;
> -               }
> -               ccname = find_krb5_cc(CIFS_DEFAULT_KRB5_DIR, arg.uid);
> -       } else {
> +       if (!legacy_uid && (have & DKD_HAVE_CREDUID))
> +               uid = arg.creduid;
> +       else if (have & DKD_HAVE_UID)
> +               uid = arg.uid;
> +       else {
>                /* no uid= or creduid= parm -- something is wrong */
>                syslog(LOG_ERR, "No uid= or creduid= parm specified");
>                rc = 1;
>                goto out;
>        }
>
> +       rc = setuid(uid);
> +       if (rc == -1) {
> +               syslog(LOG_ERR, "setuid: %s", strerror(errno));
> +               goto out;
> +       }
> +       ccname = find_krb5_cc(CIFS_DEFAULT_KRB5_DIR, uid);
> +
>        host = arg.hostname;
>
>        // do mech specific authorization
> --
> 1.7.3.4
>
>

Reply via email to