summaryrefslogtreecommitdiffstats
path: root/src/lib/gssapi
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2012-05-13 13:12:06 -0400
committerGreg Hudson <ghudson@mit.edu>2012-05-13 13:12:06 -0400
commit48b811614b5d5933a79387f9a9687c2513bf7bca (patch)
tree7ddabd754f38cdfd71b3e65dde483c7f0952f77b /src/lib/gssapi
parent8dace5cfe171b8b25c7c4131c1327dfdf748ed9d (diff)
downloadkrb5-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.
Diffstat (limited to 'src/lib/gssapi')
-rw-r--r--src/lib/gssapi/spnego/spnego_mech.c6
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;