summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2012-08-06 15:41:27 -0400
committerGreg Hudson <ghudson@mit.edu>2012-08-06 16:08:22 -0400
commitbb02471343e899c600025248501cd6c8ac737c55 (patch)
tree57dec9b5d0b802414181c48683fd9fee764bc105 /src/lib
parent09f85df95bd0f41dec8cfbcfe7c4f10f359d82ff (diff)
downloadkrb5-bb02471343e899c600025248501cd6c8ac737c55.tar.gz
krb5-bb02471343e899c600025248501cd6c8ac737c55.tar.xz
krb5-bb02471343e899c600025248501cd6c8ac737c55.zip
Always consider desired_mechs empty in spnego (2)
Follow previous change to add_cred_from. The only case where the spnego gss_*_cred_* functions can be called with specific OIDs is if the mechglue calls spnego with the spengo oid, which we never want to loop on anyway. So always consider it as null, it's the correct behavior with current semantics.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/gssapi/spnego/spnego_mech.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/lib/gssapi/spnego/spnego_mech.c b/src/lib/gssapi/spnego/spnego_mech.c
index 4425124b3..0038043b7 100644
--- a/src/lib/gssapi/spnego/spnego_mech.c
+++ b/src/lib/gssapi/spnego/spnego_mech.c
@@ -2531,7 +2531,7 @@ spnego_gss_acquire_cred_with_password(OM_uint32 *minor_status,
OM_uint32 *time_rec)
{
OM_uint32 status, tmpmin;
- gss_OID_set amechs = GSS_C_NULL_OID_SET, dmechs;
+ gss_OID_set amechs = GSS_C_NULL_OID_SET;
gss_cred_id_t mcred = NULL;
spnego_gss_cred_id_t spcred = NULL;
@@ -2543,16 +2543,14 @@ spnego_gss_acquire_cred_with_password(OM_uint32 *minor_status,
if (time_rec)
*time_rec = 0;
- dmechs = desired_mechs;
- if (desired_mechs == GSS_C_NULL_OID_SET) {
- status = get_available_mechs(minor_status, desired_name,
- cred_usage, GSS_C_NO_CRED_STORE,
- NULL, &amechs);
- dmechs = amechs;
- }
+ status = get_available_mechs(minor_status, desired_name,
+ cred_usage, GSS_C_NO_CRED_STORE,
+ NULL, &amechs);
+ if (status != GSS_S_COMPLETE)
+ goto cleanup;
status = gss_acquire_cred_with_password(minor_status, desired_name,
- password, time_req, dmechs,
+ password, time_req, amechs,
cred_usage, &mcred,
actual_mechs, time_rec);
if (status != GSS_S_COMPLETE)