X-Git-Url: http://www.project-moonshot.org/gitweb/?p=mech_eap.git;a=blobdiff_plain;f=util_name.c;h=e64ebdd722b57dc25fbea1f5fb0c9907e075d9fa;hp=d45b60f2958d20d2cf892e06f63f78481d539ec4;hb=cff9dae64ddb2ead188889c9164961bd364e8cd2;hpb=e8fadbee7396a73ec138425e54db68e4603ed66c diff --git a/util_name.c b/util_name.c index d45b60f..e64ebdd 100644 --- a/util_name.c +++ b/util_name.c @@ -194,14 +194,21 @@ importUserName(OM_uint32 *minor, GSSEAP_KRB_INIT(&krbContext); - major = bufferToString(minor, nameBuffer, &nameString); - if (GSS_ERROR(major)) - return major; + if (nameBuffer == GSS_C_NO_BUFFER) { + *minor = krb5_copy_principal(krbContext, + krb5_anonymous_principal(), &krbPrinc); + if (*minor != 0) + return GSS_S_FAILURE; + } else { + major = bufferToString(minor, nameBuffer, &nameString); + if (GSS_ERROR(major)) + return major; - *minor = krb5_parse_name(krbContext, nameString, &krbPrinc); - if (*minor != 0) { - GSSEAP_FREE(nameString); - return GSS_S_FAILURE; + *minor = krb5_parse_name(krbContext, nameString, &krbPrinc); + if (*minor != 0) { + GSSEAP_FREE(nameString); + return GSS_S_FAILURE; + } } major = krbPrincipalToName(minor, &krbPrinc, pName);