Blob Blame History Raw
diff -up cyrus-sasl-2.1.27/plugins/gssapi.c.release-server_creds cyrus-sasl-2.1.27/plugins/gssapi.c
--- cyrus-sasl-2.1.27/plugins/gssapi.c.release-server_creds	2015-11-20 15:24:57.706740573 +0100
+++ cyrus-sasl-2.1.27/plugins/gssapi.c	2015-11-20 15:26:00.310597014 +0100
@@ -945,6 +945,12 @@ gssapi_server_mech_authneg(context_t *te
 	ret = SASL_CONTINUE;
     }
 
+    /* Release server creds which are no longer needed */
+     if ( text->server_creds != GSS_C_NO_CREDENTIAL) {
+        maj_stat = gss_release_cred(&min_stat, &text->server_creds);
+        text->server_creds = GSS_C_NO_CREDENTIAL;
+     }
+
   cleanup:
     if (text->server_creds != GSS_C_NO_CREDENTIAL) {
 	GSS_LOCK_MUTEX(params->utils);