X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Feap-tls.c;h=5740f308a89ae6c2e645222474a2ba6497cde9e7;hb=c4d488788a3ed8fba3e75c9ddd632d1f98e9ac77;hp=3d8fdc787420b5d5452fe2c413cc80d6fe26e3be;hpb=e87fe1bbd37a1486c5223f110e9ce3ef75971f93;p=ppp.git diff --git a/pppd/eap-tls.c b/pppd/eap-tls.c index 3d8fdc7..5740f30 100644 --- a/pppd/eap-tls.c +++ b/pppd/eap-tls.c @@ -508,7 +508,6 @@ SSL_CTX *eaptls_init_ssl(int init_server, char *cacertfile, char *capath, { EVP_PKEY *pkey = NULL; PW_CB_DATA cb_data; - UI_METHOD* transfer_pin = NULL; cb_data.password = passwd; cb_data.prompt_info = pkey_identifier; @@ -534,6 +533,8 @@ SSL_CTX *eaptls_init_ssl(int init_server, char *cacertfile, char *capath, dbglog( "Using our private key '%s' in engine", pkey_identifier ); pkey = ENGINE_load_private_key(pkey_engine, pkey_identifier, transfer_pin, &cb_data); + + if (transfer_pin) UI_destroy_method(transfer_pin); } else { dbglog( "Loading private key '%s' from engine", pkey_identifier ); @@ -553,8 +554,6 @@ SSL_CTX *eaptls_init_ssl(int init_server, char *cacertfile, char *capath, warn("EAP-TLS: Cannot load PKCS11 key %s", pkey_identifier); log_ssl_errors(); } - - if (transfer_pin) UI_destroy_method(transfer_pin); } else { @@ -982,7 +981,7 @@ int eaptls_receive(struct eaptls_session *ets, u_char * inp, int len) ets->data = malloc(len); if (!ets->data) - fatal("EAP-TLS: allocation error\n"); + fatal("EAP-TLS: memory allocation error in eaptls_receive\n"); ets->datalen = 0; ets->tlslen = len; @@ -1065,11 +1064,13 @@ int eaptls_send(struct eaptls_session *ets, u_char ** outp) ets->datalen = res; ets->data = malloc(ets->datalen); + if (!ets->data) + fatal("EAP-TLS: memory allocation error in eaptls_send\n"); + BCOPY(fromtls, ets->data, ets->datalen); ets->offset = 0; first = 1; - } size = ets->datalen - ets->offset;