diff options
| author | Simo Sorce <simo@redhat.com> | 2012-08-06 15:41:27 -0400 |
|---|---|---|
| committer | Greg Hudson <ghudson@mit.edu> | 2012-08-06 16:08:22 -0400 |
| commit | bb02471343e899c600025248501cd6c8ac737c55 (patch) | |
| tree | 57dec9b5d0b802414181c48683fd9fee764bc105 /src/lib | |
| parent | 09f85df95bd0f41dec8cfbcfe7c4f10f359d82ff (diff) | |
| download | krb5-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.c | 16 |
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) |
