[Midnightbsd-cvs] src [8206] trunk/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c: work around a linux bug

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sat Sep 17 11:52:04 EDT 2016


Revision: 8206
          http://svnweb.midnightbsd.org/src/?rev=8206
Author:   laffer1
Date:     2016-09-17 11:52:04 -0400 (Sat, 17 Sep 2016)
Log Message:
-----------
work around a linux bug

Modified Paths:
--------------
    trunk/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c

Modified: trunk/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c
===================================================================
--- trunk/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c	2016-09-17 15:51:04 UTC (rev 8205)
+++ trunk/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c	2016-09-17 15:52:04 UTC (rev 8206)
@@ -984,7 +984,7 @@
 
 static bool_t
 svc_rpc_gss_validate(struct svc_rpc_gss_client *client, struct rpc_msg *msg,
-    gss_qop_t *qop)
+    gss_qop_t *qop, rpc_gss_proc_t gcproc)
 {
 	struct opaque_auth	*oa;
 	gss_buffer_desc		 rpcbuf, checksum;
@@ -1024,7 +1024,8 @@
 	if (maj_stat != GSS_S_COMPLETE) {
 		rpc_gss_log_status("gss_verify_mic", client->cl_mech,
 		    maj_stat, min_stat);
-		client->cl_state = CLIENT_STALE;
+		if (gcproc != RPCSEC_GSS_DESTROY)
+			client->cl_state = CLIENT_STALE;
 		return (FALSE);
 	}
 
@@ -1358,7 +1359,7 @@
 			break;
 		}
 
-		if (!svc_rpc_gss_validate(client, msg, &qop)) {
+		if (!svc_rpc_gss_validate(client, msg, &qop, gc.gc_proc)) {
 			result = RPCSEC_GSS_CREDPROBLEM;
 			break;
 		}



More information about the Midnightbsd-cvs mailing list