summaryrefslogtreecommitdiffstats
path: root/lib/libgssapi
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>2007-11-28 08:50:20 +0000
committerdfr <dfr@FreeBSD.org>2007-11-28 08:50:20 +0000
commite4ca7e7301722eecc4783bd68c20b5430604038e (patch)
tree21f1d54d4457f6393c8dff4930e129c8e994a05a /lib/libgssapi
parent2a850cfe1a353a518c1765120d606127bdefa060 (diff)
downloadFreeBSD-src-e4ca7e7301722eecc4783bd68c20b5430604038e.zip
FreeBSD-src-e4ca7e7301722eecc4783bd68c20b5430604038e.tar.gz
Make sure GSS-API mechanisms are loaded if gss_acquire_cred is called
with a null mechanism list. PR: misc/117349 Submitted by: Sean McNeil <sean at mcneil dot com>
Diffstat (limited to 'lib/libgssapi')
-rw-r--r--lib/libgssapi/gss_acquire_cred.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/libgssapi/gss_acquire_cred.c b/lib/libgssapi/gss_acquire_cred.c
index e65bb27..ba8b8b1 100644
--- a/lib/libgssapi/gss_acquire_cred.c
+++ b/lib/libgssapi/gss_acquire_cred.c
@@ -59,8 +59,8 @@ gss_acquire_cred(OM_uint32 *minor_status,
* First make sure that at least one of the requested
* mechanisms is one that we support.
*/
+ _gss_load_mech();
if (mechs) {
- _gss_load_mech();
for (i = 0; i < mechs->count; i++) {
int t;
gss_test_oid_set_member(minor_status,
@@ -73,6 +73,8 @@ gss_acquire_cred(OM_uint32 *minor_status,
*minor_status = 0;
return (GSS_S_BAD_MECH);
}
+ } else {
+ mechs = _gss_mech_oids;
}
if (actual_mechs) {
@@ -92,9 +94,6 @@ gss_acquire_cred(OM_uint32 *minor_status,
cred->gc_usage = cred_usage;
SLIST_INIT(&cred->gc_mc);
- if (mechs == GSS_C_NO_OID_SET)
- mechs = _gss_mech_oids;
-
set.count = 1;
min_time = GSS_C_INDEFINITE;
for (i = 0; i < mechs->count; i++) {
OpenPOWER on IntegriCloud