summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/lib/gss_mechs/mech_krb5/mech/accept_sec_context.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/usr/src/lib/gss_mechs/mech_krb5/mech/accept_sec_context.c b/usr/src/lib/gss_mechs/mech_krb5/mech/accept_sec_context.c
index 0bbec8814c..c2ffd1d061 100644
--- a/usr/src/lib/gss_mechs/mech_krb5/mech/accept_sec_context.c
+++ b/usr/src/lib/gss_mechs/mech_krb5/mech/accept_sec_context.c
@@ -71,7 +71,7 @@
*/
/*
- * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -320,6 +320,9 @@ krb5_gss_accept_sec_context(minor_status, context_handle,
KRB5_LOG0(KRB5_INFO,"krb5_gss_accept_sec_context() start");
+ /* Solaris Kerberos */
+ memset(&krb_error_data, 0, sizeof(krb_error_data));
+
code = krb5int_accessor (&kaccess, KRB5INT_ACCESS_VERSION);
if (code) {
*minor_status = code;
@@ -1174,7 +1177,6 @@ krb5_gss_accept_sec_context(minor_status, context_handle,
* The client is expecting a response, so we can send an
* error token back
*/
- memset(&krb_error_data, 0, sizeof(krb_error_data));
/*
* Solaris Kerberos: We need to remap error conditions for buggy
@@ -1238,6 +1240,11 @@ krb5_gss_accept_sec_context(minor_status, context_handle,
}
cleanup:
+
+ /* Solaris Kerberos */
+ if (krb_error_data.e_data.data != NULL)
+ free(krb_error_data.e_data.data);
+
if (!verifier_cred_handle && cred_handle) {
krb5_gss_release_cred(&t_minor_status, &cred_handle);
}