krb5_free_unparsed_name deprecated by Heimdal
[mech_eap.git] / mech_eap / accept_sec_context.c
index aeba1b4..6dfb9b7 100644 (file)
@@ -387,12 +387,13 @@ setAcceptorIdentity(OM_uint32 *minor,
                                    PW_GSS_ACCEPTOR_SERVICE_SPECIFICS,
                                    0,
                                    &nameBuf);
-
-        if (GSS_ERROR(major)) {
-            krb5_free_unparsed_name(krbContext, ssi);
-            return major;
-        }
+#ifdef HAVE_HEIMDAL_VERSION
+        krb5_xfree(ssi);
+#else
         krb5_free_unparsed_name(krbContext, ssi);
+#endif
+        if (GSS_ERROR(major))
+            return major;
     }
 
     krbPrincRealmToGssBuffer(krbPrinc, &nameBuf);
@@ -903,13 +904,11 @@ gssEapAcceptSecContext(OM_uint32 *minor,
      * credential handle.
      */
 
-    /*
-     * Calling gssEapInquireCred() forces the default acceptor credential name
-     * to be resolved.
-     */
-    major = gssEapInquireCred(minor, cred, &ctx->acceptorName, NULL, NULL, NULL);
-    if (GSS_ERROR(major))
-        goto cleanup;
+    if (cred->name != GSS_C_NO_NAME) {
+        major = gssEapDuplicateName(minor, cred->name, &ctx->acceptorName);
+        if (GSS_ERROR(major))
+            goto cleanup;
+    }
 
     major = gssEapSmStep(minor,
                          cred,