From 8584dccc6cc32aa289fe240f7cf75d7b80bbecba Mon Sep 17 00:00:00 2001 From: Luke Howard Date: Sat, 17 Sep 2011 00:02:34 +1000 Subject: [PATCH] More careful matching of alloc/free functions --- mech_eap/util_attr.cpp | 2 ++ mech_eap/util_krb.c | 9 ++++----- mech_eap/util_name.c | 4 ++-- mech_eap/util_radius.cpp | 2 +- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/mech_eap/util_attr.cpp b/mech_eap/util_attr.cpp index acd7a8f..3bfe785 100644 --- a/mech_eap/util_attr.cpp +++ b/mech_eap/util_attr.cpp @@ -52,6 +52,8 @@ GSSEAP_ONCE_CALLBACK(gssEapAttrProvidersInitInternal) GSSEAP_ASSERT(gssEapAttrProvidersInitStatus == GSS_S_UNAVAILABLE); + json_set_alloc_funcs(GSSEAP_MALLOC, GSSEAP_FREE); + major = gssEapRadiusAttrProviderInit(&minor); if (GSS_ERROR(major)) goto cleanup; diff --git a/mech_eap/util_krb.c b/mech_eap/util_krb.c index db6e4fb..ce3d0f6 100644 --- a/mech_eap/util_krb.c +++ b/mech_eap/util_krb.c @@ -68,12 +68,11 @@ initKrbContext(krb5_context *pKrbContext) *pKrbContext = krbContext; cleanup: + krb5_free_default_realm(krbContext, defaultRealm); + if (code != 0 && krbContext != NULL) krb5_free_context(krbContext); - if (defaultRealm != NULL) - GSSEAP_FREE(defaultRealm); - return code; } @@ -462,7 +461,7 @@ krbMakeAuthDataKdcIssued(krb5_context context, if (code != 0) goto cleanup; - GSSEAP_FREE(buf); + free(buf); /* match ASN1_MALLOC_ENCODE */ buf = NULL; ASN1_MALLOC_ENCODE(AD_KDCIssued, buf, buf_size, &kdcIssued, &len, code); @@ -479,7 +478,7 @@ krbMakeAuthDataKdcIssued(krb5_context context, cleanup: if (buf != NULL) - GSSEAP_FREE(buf); + free(buf); /* match ASN1_MALLOC_ENCODE */ if (crypto != NULL) krb5_crypto_destroy(context, crypto); free_Checksum(&kdcIssued.ad_checksum); diff --git a/mech_eap/util_name.c b/mech_eap/util_name.c index 187d444..a014bbe 100644 --- a/mech_eap/util_name.c +++ b/mech_eap/util_name.c @@ -206,7 +206,7 @@ importServiceName(OM_uint32 *minor, } if (realm != NULL) - GSSEAP_FREE(realm); + krb5_free_default_realm(krbContext, realm); GSSEAP_FREE(service); return major; @@ -272,7 +272,7 @@ importEapNameFlags(OM_uint32 *minor, #endif if (defaultRealm != NULL) - GSSEAP_FREE(defaultRealm); + krb5_free_default_realm(krbContext, defaultRealm); } if (nameBuffer != GSS_C_NO_BUFFER) diff --git a/mech_eap/util_radius.cpp b/mech_eap/util_radius.cpp index 76fba7b..a23d93d 100644 --- a/mech_eap/util_radius.cpp +++ b/mech_eap/util_radius.cpp @@ -809,7 +809,7 @@ gss_eap_radius_attr_provider::initWithJsonObject(const gss_eap_attr_ctx *ctx, pNext = &vp->next; } - m_authenticated = obj["authenticated"].integer(); + m_authenticated = obj["authenticated"].integer() ? true : false; return true; } -- 2.1.4