RE: [PATCH 1/2] gssd: Fix bugs in process_krb5_upcall

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

 



> -----Original Message-----
> From: Trond Myklebust [mailto:Trond.Myklebust@xxxxxxxxxx]
> Sent: Monday, November 26, 2012 5:31 PM
> To: Steve Dickson
> Cc: Bruce Fields; linux-nfs@xxxxxxxxxxxxxxx
> Subject: [PATCH 1/2] gssd: Fix bugs in process_krb5_upcall
> 
> The 'tgtname' parameter is the _server_ name, not the service name.
> 
> Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
> ---
>  utils/gssd/gssd_proc.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/utils/gssd/gssd_proc.c b/utils/gssd/gssd_proc.c index
> ec251fa..b79e872 100644
> --- a/utils/gssd/gssd_proc.c
> +++ b/utils/gssd/gssd_proc.c
> @@ -963,10 +963,8 @@ process_krb5_upcall(struct clnt_info *clp, uid_t uid,
> int fd, char *tgtname,
>  	printerr(1, "handling krb5 upcall (%s)\n", clp->dirname);
> 
>  	if (tgtname) {
> -		if (clp->servicename) {
> -			free(clp->servicename);
> -			clp->servicename = strdup(tgtname);
> -		}
> +		free(clp->servername);
> +		clp->servername = strdup(tgtname);
>  	}
>  	token.length = 0;
>  	token.value = NULL;
> --

Sigh... Actually, this isn't right either. The log comment for commit 8b1c7bf5b624c9bc91b41ae577b9fc5c21641705 (rpc: add target field to new upcall) on the Linux client does indeed talk about who we want to authenticate to, but the choice of 'clnt->cl_principal' will actually give us our client hostname.

It turns out that nfs@"client hostname "is indeed the correct machine cred name when we're acting as the client, but when doing _callbacks_, the server has to authenticate using the same principal used by the client in the SETCLIENTID call (See Section 3.4, RFC3530). i.e. the nfs@hostname used does in fact include the NFS client's hostname (not the server's)!

So while PATCH 2/2 is still good, this patch appears to be incorrect and should be dropped for now.

Cheers
  Trond
--
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