From 0914089dc1ee8d469fccd91ec935e36541afa37b Mon Sep 17 00:00:00 2001 From: Luke Howard Date: Sat, 11 Aug 2012 14:23:05 +1000 Subject: [PATCH] Don't expect OID for imported initiator name --- mech_eap/import_sec_context.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mech_eap/import_sec_context.c b/mech_eap/import_sec_context.c index ed20b23..a0ebb8c 100644 --- a/mech_eap/import_sec_context.c +++ b/mech_eap/import_sec_context.c @@ -214,7 +214,7 @@ importName(OM_uint32 *minor, size_t *pRemain, gss_name_t *pName) { - OM_uint32 major, tmpMinor; + OM_uint32 major, tmpMinor, flags; unsigned char *p = *pBuf; size_t remain = *pRemain; gss_buffer_desc tmp; @@ -233,12 +233,15 @@ importName(OM_uint32 *minor, tmp.value = p + 4; - major = gssEapImportNameInternal(minor, &tmp, pName, - EXPORT_NAME_FLAG_COMPOSITE); + flags = EXPORT_NAME_FLAG_COMPOSITE; + if (mech == GSS_C_NO_OID) + flags |= EXPORT_NAME_FLAG_OID; + + major = gssEapImportNameInternal(minor, &tmp, pName, flags); if (GSS_ERROR(major)) return major; - if (mech != GSS_C_NO_OID) { + if ((flags & EXPORT_NAME_FLAG_OID) == 0) { major = gssEapCanonicalizeOid(minor, mech, 0, &(*pName)->mechanismUsed); if (GSS_ERROR(major)) { gssEapReleaseName(&tmpMinor, pName); -- 2.1.4