gssd: Call authgss_free_private_data() if library provides it.
authorNeilBrown <neilb@suse.de>
Wed, 13 Feb 2013 20:11:05 +0000 (15:11 -0500)
committerSteve Dickson <steved@redhat.com>
Wed, 13 Feb 2013 20:11:47 +0000 (15:11 -0500)
commit95894ff4467995659c4ce5e2523f3c8058d9c676
tree3261eaeb9e440c3fea9b73460031c805ac211a19
parenteb8229338f060f3974fd5557c8bc86fdb9005a81
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>
aclocal/librpcsecgss.m4
aclocal/libtirpc.m4
utils/gssd/gssd_proc.c