summaryrefslogtreecommitdiffstats
path: root/lib/libgssapi/gss_indicate_mechs.c
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>2007-06-30 07:47:45 +0000
committerdfr <dfr@FreeBSD.org>2007-06-30 07:47:45 +0000
commitc38fa0f103e8f34d337d3bf31003c1696179c54c (patch)
tree43e155259c3b6dda9ce39b2e454a8e8ef1282f3c /lib/libgssapi/gss_indicate_mechs.c
parentb4cb24ec70dd01020b996accd7f33061c726299d (diff)
downloadFreeBSD-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.c19
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;
OpenPOWER on IntegriCloud