summaryrefslogtreecommitdiff
path: root/sys/rpc
diff options
context:
space:
mode:
authorRick Macklem <rmacklem@FreeBSD.org>2012-10-15 13:38:25 +0000
committerRick Macklem <rmacklem@FreeBSD.org>2012-10-15 13:38:25 +0000
commit798a34fe097d4f9f74358bab552af94705e095e3 (patch)
treeca45c1954d0af101de09a8559450a8e744086f3e /sys/rpc
parent429233171be4e6709cb9288386efa62d11037b08 (diff)
downloadsrc-test2-798a34fe097d4f9f74358bab552af94705e095e3.tar.gz
src-test2-798a34fe097d4f9f74358bab552af94705e095e3.zip
Notes
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 dadd36ef1808..0437189557c4 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);