name->krbPrincipal = *principal;
*principal = NULL;
- if (KRB_PRINC_LENGTH(name->krbPrincipal) > 1) {
+ if (KRB_PRINC_LENGTH(name->krbPrincipal) >= 1) {
name->flags |= NAME_FLAG_SERVICE;
- } else {
+ }
+ if (KRB_PRINC_LENGTH(name->krbPrincipal) == 1) {
name->flags |= NAME_FLAG_NAI;
}
*minor = GSSEAP_BAD_SERVICE_NAME;
}
- if (realm != NULL)
+ if (realm != NULL) {
+#ifdef HAVE_HEIMDAL_VERSION
+ krb5_xfree(realm);
+#else
krb5_free_default_realm(krbContext, realm);
+#endif
+ }
GSSEAP_FREE(service);
return major;
if (KRB_PRINC_REALM(krbPrinc) == NULL)
code = ENOMEM;
}
-#endif
-
+ krb5_xfree(defaultRealm);
+#else
if (defaultRealm != NULL)
krb5_free_default_realm(krbContext, defaultRealm);
+#endif
}
if (nameBuffer != GSS_C_NO_BUFFER)
if (major == GSS_S_COMPLETE &&
mechType != GSS_C_NO_OID) {
GSSEAP_ASSERT(gssEapIsConcreteMechanismOid(mechType));
+ GSSEAP_ASSERT(name != GSS_C_NO_NAME);
GSSEAP_ASSERT(name->mechanismUsed == GSS_C_NO_OID);
major = gssEapCanonicalizeOid(minor, mechType, 0, &name->mechanismUsed);
OM_uint32
gssEapExportName(OM_uint32 *minor,
- const gss_name_t name,
+ gss_const_name_t name,
gss_buffer_t exportedName)
{
return gssEapExportNameInternal(minor, name, exportedName,
OM_uint32
gssEapExportNameInternal(OM_uint32 *minor,
- const gss_name_t name,
+ gss_const_name_t name,
gss_buffer_t exportedName,
OM_uint32 flags)
{
OM_uint32
gssEapCanonicalizeName(OM_uint32 *minor,
- const gss_name_t input_name,
+ gss_const_name_t input_name,
const gss_OID mech_type,
gss_name_t *dest_name)
{
OM_uint32
gssEapDuplicateName(OM_uint32 *minor,
- const gss_name_t input_name,
+ gss_const_name_t input_name,
gss_name_t *dest_name)
{
return gssEapCanonicalizeName(minor, input_name,
}
static int
-hasRealmP(gss_name_t name)
+hasRealmP(gss_const_name_t name)
{
#ifdef HAVE_HEIMDAL_VERSION
if (KRB_PRINC_REALM(name->krbPrincipal) != NULL &&
OM_uint32
gssEapDisplayName(OM_uint32 *minor,
- gss_name_t name,
+ gss_const_name_t name,
gss_buffer_t output_name_buffer,
gss_OID *output_name_type)
{
OM_uint32
gssEapCompareName(OM_uint32 *minor,
- gss_name_t name1,
- gss_name_t name2,
+ gss_const_name_t name1,
+ gss_const_name_t name2,
OM_uint32 flags,
int *name_equal)
{