X-Git-Url: http://www.project-moonshot.org/gitweb/?p=mech_eap.orig;a=blobdiff_plain;f=util_krb.c;h=7143685d5f9e077f4bee12fad87035bc8faebeb0;hp=e96f5e60ff507cfaf8d1ee67f638cbcdcc5c3aa8;hb=7db57acddeddad5f96d16288b3776baf6c10c0b1;hpb=bb9927f5ce8a09c29d449cfacc6f5309c42c06e0 diff --git a/util_krb.c b/util_krb.c index e96f5e6..7143685 100644 --- a/util_krb.c +++ b/util_krb.c @@ -498,8 +498,8 @@ krbMakeCred(krb5_context krbContext, KrbCredInfo krbCredInfo; krb5_keyblock *key; krb5_crypto krbCrypto = NULL; - unsigned char *buf = NULL; - size_t buf_size, len; + krb5_data credInfoData = { 0 }; + size_t len; #else krb5_data *d = NULL; #endif @@ -540,7 +540,8 @@ krbMakeCred(krb5_context krbContext, krbCredInfo.sname = &creds->server->name; krbCredInfo.caddr = creds->addresses.len ? &creds->addresses : NULL; - ASN1_MALLOC_ENCODE(KrbCredInfo, buf, buf_size, &krbCredInfo, &len, code); + ASN1_MALLOC_ENCODE(KrbCredInfo, credInfoData.data, credInfoData.length, + &krbCredInfo, &len, code); if (code != 0) goto cleanup; @@ -551,26 +552,23 @@ krbMakeCred(krb5_context krbContext, code = krb5_encrypt_EncryptedData(krbContext, krbCrypto, KRB5_KU_KRB_CRED, - buf, - len, + credInfoData.data, + credInfoData.length, 0, &krbCred.enc_part); if (code != 0) goto cleanup; - GSSEAP_FREE(buf); - buf = NULL; - - ASN1_MALLOC_ENCODE(KRB_CRED, buf, buf_size, &krbCred, &len, code); + ASN1_MALLOC_ENCODE(KRB_CRED, data->data, data->length, + &krbCred, &len, code); if (code != 0) goto cleanup; cleanup: - if (buf != NULL) - GSSEAP_FREE(buf); if (krbCrypto != NULL) krb5_crypto_destroy(krbContext, krbCrypto); free_KRB_CRED(&krbCred); + krb5_data_free(&credInfoData); return code; #else