summaryrefslogtreecommitdiffstats
path: root/sys/rpc
diff options
context:
space:
mode:
authorrmacklem <rmacklem@FreeBSD.org>2012-10-15 13:38:25 +0000
committerrmacklem <rmacklem@FreeBSD.org>2012-10-15 13:38:25 +0000
commit6496473bfee6f6a2d16c5125ded8f99073d0cc37 (patch)
treeca45c1954d0af101de09a8559450a8e744086f3e /sys/rpc
parent5ef1c68c3e247a26c0b126f87459dec55746119c (diff)
downloadFreeBSD-src-6496473bfee6f6a2d16c5125ded8f99073d0cc37.zip
FreeBSD-src-6496473bfee6f6a2d16c5125ded8f99073d0cc37.tar.gz
Add a comment describing why r241097 was done.
Suggested by: rwatson MFC after: 1 week
Diffstat (limited to 'sys/rpc')
-rw-r--r--sys/rpc/rpcsec_gss/svc_rpcsec_gss.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c b/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c
index dadd36e..0437189 100644
--- a/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c
+++ b/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c
@@ -1024,6 +1024,17 @@ svc_rpc_gss_validate(struct svc_rpc_gss_client *client, struct rpc_msg *msg,
if (maj_stat != GSS_S_COMPLETE) {
rpc_gss_log_status("gss_verify_mic", client->cl_mech,
maj_stat, min_stat);
+ /*
+ * Attila Bogar and Herbert Poeckl reported similar problems
+ * w.r.t. a Linux NFS client doing a krb5 NFS mount against the
+ * FreeBSD server. We determined this was a Linux bug:
+ * http://www.spinics.net/lists/linux-nfs/msg32466.html, where
+ * the mount failed to work because a Destroy operation with a
+ * bogus encrypted checksum destroyed the authenticator handle.
+ * Since the checksum is bogus (gss_verify_mic() failed), it
+ * doesn't make sense to destroy the handle and not doing so
+ * fixes the Linux mount.
+ */
if (gcproc != RPCSEC_GSS_DESTROY)
client->cl_state = CLIENT_STALE;
return (FALSE);
OpenPOWER on IntegriCloud