summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2010-02-12 19:18:17 +0000
committerGreg Hudson <ghudson@mit.edu>2010-02-12 19:18:17 +0000
commitc1ee82b90c8cd55d5951a8e923cd0d919037dca2 (patch)
tree948c24ab3e027f3d5e5509551318643f1342c92a /src
parentfe68c6595b7f90ec6891b4dbb0b227ee859090e5 (diff)
downloadkrb5-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.c13
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],