X-Git-Url: http://www.project-moonshot.org/gitweb/?p=mech_eap.git;a=blobdiff_plain;f=mech_eap%2Futil_name.c;h=b85565cf5fd371477193191be3c95cfb5203f935;hp=e60156cf1a8e06c65e84a59714f75b219d28dc0d;hb=HEAD;hpb=d81b9e4605c7bd3da62f3679effe124778592b13 diff --git a/mech_eap/util_name.c b/mech_eap/util_name.c index e60156c..b85565c 100644 --- a/mech_eap/util_name.c +++ b/mech_eap/util_name.c @@ -138,9 +138,10 @@ krbPrincipalToName(OM_uint32 *minor, 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; } @@ -205,8 +206,13 @@ importServiceName(OM_uint32 *minor, *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; @@ -269,10 +275,11 @@ importEapNameFlags(OM_uint32 *minor, 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) @@ -516,6 +523,7 @@ gssEapImportName(OM_uint32 *minor, 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); @@ -531,7 +539,7 @@ gssEapImportName(OM_uint32 *minor, 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, @@ -540,7 +548,7 @@ gssEapExportName(OM_uint32 *minor, OM_uint32 gssEapExportNameInternal(OM_uint32 *minor, - const gss_name_t name, + gss_const_name_t name, gss_buffer_t exportedName, OM_uint32 flags) { @@ -633,7 +641,7 @@ cleanup: 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) { @@ -695,7 +703,7 @@ cleanup: 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, @@ -703,7 +711,7 @@ gssEapDuplicateName(OM_uint32 *minor, } static int -hasRealmP(gss_name_t name) +hasRealmP(gss_const_name_t name) { #ifdef HAVE_HEIMDAL_VERSION if (KRB_PRINC_REALM(name->krbPrincipal) != NULL && @@ -718,7 +726,7 @@ hasRealmP(gss_name_t name) 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) { @@ -776,8 +784,8 @@ gssEapDisplayName(OM_uint32 *minor, 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) {