diff options
author | NeilBrown <neilb@suse.de> | 2013-02-13 15:11:05 -0500 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2013-02-13 15:11:47 -0500 |
commit | 95894ff4467995659c4ce5e2523f3c8058d9c676 (patch) | |
tree | 3261eaeb9e440c3fea9b73460031c805ac211a19 /utils | |
parent | eb8229338f060f3974fd5557c8bc86fdb9005a81 (diff) | |
download | nfs-utils-95894ff4467995659c4ce5e2523f3c8058d9c676.tar.gz nfs-utils-95894ff4467995659c4ce5e2523f3c8058d9c676.tar.xz nfs-utils-95894ff4467995659c4ce5e2523f3c8058d9c676.zip |
gssd: Call authgss_free_private_data() if library provides it.
librpcsecgss provides authgss_free_private_data() as a pair to
authgss_get_private_data(). libtirpc does not - until recently.
This ommision results in authgss_destroy_context() sending an
incorrect RPCSEC_GSS_DESTROY request when gssd calls AUTH_DESTROY().
The call has been added to libtirpc, so this patch updates nfs-utils
to check for the presense of the function in libtirpc and to set
HAVE_AUTHGSS_FREE_PRIVATE_DATA if it is present.
This is also set unconditionally if librpcsecgss is used.
gssd is changed to test this value rather than HAVE_LIBTIRPC when
chosing whether to call authgss_free_private_data().
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'utils')
-rw-r--r-- | utils/gssd/gssd_proc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/utils/gssd/gssd_proc.c b/utils/gssd/gssd_proc.c index d01ba2f..c17ab3b 100644 --- a/utils/gssd/gssd_proc.c +++ b/utils/gssd/gssd_proc.c @@ -1078,7 +1078,7 @@ process_krb5_upcall(struct clnt_info *clp, uid_t uid, int fd, char *tgtname, out: if (token.value) free(token.value); -#ifndef HAVE_LIBTIRPC +#ifdef HAVE_AUTHGSS_FREE_PRIVATE_DATA if (pd.pd_ctx_hndl.length != 0) authgss_free_private_data(&pd); #endif |