diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/curl_sasl_gssapi.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/curl_sasl_gssapi.c b/lib/curl_sasl_gssapi.c index 096729fef..465862144 100644 --- a/lib/curl_sasl_gssapi.c +++ b/lib/curl_sasl_gssapi.c @@ -134,7 +134,19 @@ CURLcode Curl_sasl_create_gssapi_security_message(struct SessionHandle *data, void Curl_sasl_gssapi_cleanup(struct kerberos5data *krb5) { - (void) krb5; + OM_uint32 minor_status; + + /* Free our security context */ + if(krb5->context != GSS_C_NO_CONTEXT) { + gss_delete_sec_context(&minor_status, &krb5->context, GSS_C_NO_BUFFER); + krb5->context = GSS_C_NO_CONTEXT; + } + + /* Free the SPN */ + if(krb5->spn != GSS_C_NO_NAME) { + gss_release_name(&minor_status, &krb5->spn); + krb5->spn = GSS_C_NO_NAME; + } } #endif /* HAVE_GSSAPI && USE_KERBEROS5 */ |