document default_realm appdefault
[mech_eap.orig] / util_name.c
index 85f8b3f..c8c29c4 100644 (file)
@@ -196,10 +196,18 @@ importUserName(OM_uint32 *minor,
     OM_uint32 major;
     krb5_context krbContext;
     krb5_principal krbPrinc;
-    char *nameString;
+    char *nameString, *realm = NULL;
+    int flags = 0;
+    krb5_error_code code;
 
     GSSEAP_KRB_INIT(&krbContext);
 
+    code = krb5_get_default_realm(krbContext, &realm);
+    if (code != 0 || realm == NULL)
+        flags |= KRB5_PRINCIPAL_PARSE_REQUIRE_REALM;
+    else
+        krb5_free_default_realm(krbContext, realm);
+
     if (nameBuffer == GSS_C_NO_BUFFER) {
         *minor = krb5_copy_principal(krbContext,
                                      krbAnonymousPrincipal(), &krbPrinc);
@@ -210,7 +218,7 @@ importUserName(OM_uint32 *minor,
         if (GSS_ERROR(major))
             return major;
 
-        *minor = krb5_parse_name(krbContext, nameString, &krbPrinc);
+        *minor = krb5_parse_name_flags(krbContext, nameString, flags, &krbPrinc);
         if (*minor != 0) {
             GSSEAP_FREE(nameString);
             return GSS_S_FAILURE;