diff options
author | Greg Hudson <ghudson@mit.edu> | 2010-02-12 19:18:17 +0000 |
---|---|---|
committer | Greg Hudson <ghudson@mit.edu> | 2010-02-12 19:18:17 +0000 |
commit | c1ee82b90c8cd55d5951a8e923cd0d919037dca2 (patch) | |
tree | 948c24ab3e027f3d5e5509551318643f1342c92a /src | |
parent | fe68c6595b7f90ec6891b4dbb0b227ee859090e5 (diff) | |
download | krb5-c1ee82b90c8cd55d5951a8e923cd0d919037dca2.tar.gz krb5-c1ee82b90c8cd55d5951a8e923cd0d919037dca2.tar.xz krb5-c1ee82b90c8cd55d5951a8e923cd0d919037dca2.zip |
Simplify the SPNEGO neg_mechs intersection logic a bit using
gss_test_oid_set_member.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23717 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/gssapi/spnego/spnego_mech.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/lib/gssapi/spnego/spnego_mech.c b/src/lib/gssapi/spnego/spnego_mech.c index 60fadd5e5b..bf695d8451 100644 --- a/src/lib/gssapi/spnego/spnego_mech.c +++ b/src/lib/gssapi/spnego/spnego_mech.c @@ -2678,7 +2678,8 @@ get_negotiable_mechs(OM_uint32 *minor_status, spnego_gss_cred_id_t spcred, gss_cred_id_t creds = GSS_C_NO_CREDENTIAL, *credptr; gss_OID_set cred_mechs = GSS_C_NULL_OID_SET; gss_OID_set intersect_mechs = GSS_C_NULL_OID_SET; - unsigned int i, j; + unsigned int i; + int present; if (spcred == NULL) { /* @@ -2715,12 +2716,10 @@ get_negotiable_mechs(OM_uint32 *minor_status, spnego_gss_cred_id_t spcred, } for (i = 0; i < spcred->neg_mechs->count; i++) { - for (j = 0; j < cred_mechs->count; j++) { - if (!g_OID_equal(&spcred->neg_mechs->elements[i], - &cred_mechs->elements[j])) - break; - } - if (j == cred_mechs->count) + gss_test_oid_set_member(&tmpmin, + &spcred->neg_mechs->elements[i], + cred_mechs, &present); + if (!present) continue; ret = gss_add_oid_set_member(minor_status, &spcred->neg_mechs->elements[i], |