diff options
author | Greg Hudson <ghudson@mit.edu> | 2012-05-13 13:12:06 -0400 |
---|---|---|
committer | Greg Hudson <ghudson@mit.edu> | 2012-05-13 13:12:06 -0400 |
commit | 48b811614b5d5933a79387f9a9687c2513bf7bca (patch) | |
tree | 7ddabd754f38cdfd71b3e65dde483c7f0952f77b | |
parent | 8dace5cfe171b8b25c7c4131c1327dfdf748ed9d (diff) | |
download | krb5-48b811614b5d5933a79387f9a9687c2513bf7bca.tar.gz krb5-48b811614b5d5933a79387f9a9687c2513bf7bca.tar.xz krb5-48b811614b5d5933a79387f9a9687c2513bf7bca.zip |
Don't stomp minor code in spnego_gss_acquire_cred
When spnego_gss_acquire_cred passes through a failure status from the
mechglue, it overwrites the minor code with a call to
gss_release_oid_set(). Use a temporary minor status for that and a
related call.
-rw-r--r-- | src/lib/gssapi/spnego/spnego_mech.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lib/gssapi/spnego/spnego_mech.c b/src/lib/gssapi/spnego/spnego_mech.c index 70246b6acb..0c4e7279d4 100644 --- a/src/lib/gssapi/spnego/spnego_mech.c +++ b/src/lib/gssapi/spnego/spnego_mech.c @@ -331,7 +331,7 @@ spnego_gss_acquire_cred(OM_uint32 *minor_status, gss_OID_set *actual_mechs, OM_uint32 *time_rec) { - OM_uint32 status; + OM_uint32 status, tmpmin; gss_OID_set amechs; gss_cred_id_t mcred = NULL; spnego_gss_cred_id_t spcred = NULL; @@ -375,9 +375,9 @@ spnego_gss_acquire_cred(OM_uint32 *minor_status, } if (actual_mechs && amechs != GSS_C_NULL_OID_SET) { - (void) gssint_copy_oid_set(minor_status, amechs, actual_mechs); + (void) gssint_copy_oid_set(&tmpmin, amechs, actual_mechs); } - (void) gss_release_oid_set(minor_status, &amechs); + (void) gss_release_oid_set(&tmpmin, &amechs); if (status == GSS_S_COMPLETE) { spcred->mcred = mcred; |