diff options
author | dfr <dfr@FreeBSD.org> | 2007-06-30 07:47:45 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 2007-06-30 07:47:45 +0000 |
commit | c38fa0f103e8f34d337d3bf31003c1696179c54c (patch) | |
tree | 43e155259c3b6dda9ce39b2e454a8e8ef1282f3c /lib/libgssapi/gss_indicate_mechs.c | |
parent | b4cb24ec70dd01020b996accd7f33061c726299d (diff) | |
download | FreeBSD-src-c38fa0f103e8f34d337d3bf31003c1696179c54c.zip FreeBSD-src-c38fa0f103e8f34d337d3bf31003c1696179c54c.tar.gz |
Merge fixes back from heimdal.
Approved by: re (kensmith)
Diffstat (limited to 'lib/libgssapi/gss_indicate_mechs.c')
-rw-r--r-- | lib/libgssapi/gss_indicate_mechs.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/libgssapi/gss_indicate_mechs.c b/lib/libgssapi/gss_indicate_mechs.c index 7abab20..87a34f4 100644 --- a/lib/libgssapi/gss_indicate_mechs.c +++ b/lib/libgssapi/gss_indicate_mechs.c @@ -46,13 +46,18 @@ gss_indicate_mechs(OM_uint32 *minor_status, return (major_status); SLIST_FOREACH(m, &_gss_mechs, gm_link) { - major_status = m->gm_indicate_mechs(minor_status, &set); - if (major_status) - continue; - for (i = 0; i < set->count; i++) - major_status = gss_add_oid_set_member(minor_status, - &set->elements[i], mech_set); - gss_release_oid_set(minor_status, &set); + if (m->gm_indicate_mechs) { + major_status = m->gm_indicate_mechs(minor_status, &set); + if (major_status) + continue; + for (i = 0; i < set->count; i++) + major_status = gss_add_oid_set_member(minor_status, + &set->elements[i], mech_set); + gss_release_oid_set(minor_status, &set); + } else { + major_status = gss_add_oid_set_member( + minor_status, &m->gm_mech_oid, mech_set); + } } *minor_status = 0; |