diff options
author | Sansar Choinyambuu <schoinya@hsr.ch> | 2011-10-05 09:01:24 +0200 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-11-28 14:34:21 +0100 |
commit | 10210cc6e9fe1ae9f13d3515fcd85b8c53b443a9 (patch) | |
tree | 5485d893c4dfbb734b4897fc7bd69932aa475f7e /src | |
parent | 849b903baa6c76cb4d24a3ee93662b10df460893 (diff) | |
download | strongswan-10210cc6e9fe1ae9f13d3515fcd85b8c53b443a9.tar.bz2 strongswan-10210cc6e9fe1ae9f13d3515fcd85b8c53b443a9.tar.xz |
Fixed freeing invalid memory issue
Diffstat (limited to 'src')
-rw-r--r-- | src/libimcv/plugins/imc_attestation/imc_attestation.c | 11 | ||||
-rw-r--r-- | src/libpts/tcg/tcg_pts_attr_simple_comp_evid.c | 10 |
2 files changed, 11 insertions, 10 deletions
diff --git a/src/libimcv/plugins/imc_attestation/imc_attestation.c b/src/libimcv/plugins/imc_attestation/imc_attestation.c index 2a3deb935..993ea2568 100644 --- a/src/libimcv/plugins/imc_attestation/imc_attestation.c +++ b/src/libimcv/plugins/imc_attestation/imc_attestation.c @@ -599,11 +599,11 @@ TNC_Result TNC_IMC_ReceiveMessage(TNC_IMCID imc_id, hasher_t *hasher; u_char hash_output[HASH_SIZE_SHA384]; hash_algorithm_t hash_alg; - + /* TODO: Implement BIOS measurement */ DBG1(DBG_IMC, "Experimental implementation:" " Extend TPM with etc/tnc_config file"); - + params.flags = PTS_SIMPLE_COMP_EVID_FLAG_PCR | PTS_SIMPLE_COMP_EVID_FLAG_NO_VALID; params.depth = 0; params.vendor_id = PEN_TCG; @@ -635,7 +635,8 @@ TNC_Result TNC_IMC_ReceiveMessage(TNC_IMCID imc_id, hasher = lib->crypto->create_hasher(lib->crypto, hash_alg); if (!hasher) { - DBG1(DBG_IMC, " hasher %N not available", hash_algorithm_names, hash_alg); + DBG1(DBG_IMC, " hasher %N not available", + hash_algorithm_names, hash_alg); return TNC_RESULT_FATAL; } @@ -665,7 +666,6 @@ TNC_Result TNC_IMC_ReceiveMessage(TNC_IMCID imc_id, return TNC_RESULT_FATAL; } params.measurement_time = chunk_create(utc_time, 20); - params.measurement_time = chunk_clone(params.measurement_time); } params.measurement = chunk_create(hash_output, hasher->get_hash_size(hasher)); @@ -687,6 +687,7 @@ TNC_Result TNC_IMC_ReceiveMessage(TNC_IMCID imc_id, /* Buffer Simple Component Evidence attribute */ attr = tcg_pts_attr_simple_comp_evid_create(params); evidences->insert_last(evidences, attr); + break; } case PTS_FUNC_COMP_NAME_IGNORE: @@ -724,7 +725,7 @@ TNC_Result TNC_IMC_ReceiveMessage(TNC_IMCID imc_id, attr_list->insert_last(attr_list, attr); e->destroy(e); - evidences->destroy(evidences); + DESTROY_IF(evidences); break; } diff --git a/src/libpts/tcg/tcg_pts_attr_simple_comp_evid.c b/src/libpts/tcg/tcg_pts_attr_simple_comp_evid.c index 69ff00de1..493a22733 100644 --- a/src/libpts/tcg/tcg_pts_attr_simple_comp_evid.c +++ b/src/libpts/tcg/tcg_pts_attr_simple_comp_evid.c @@ -564,11 +564,11 @@ pa_tnc_attr_t *tcg_pts_attr_simple_comp_evid_create( .extended_pcr = params.extended_pcr, .hash_algorithm = params.hash_algorithm, .transformation = params.transformation, - .measurement_time = params.measurement_time, - .policy_uri = params.policy_uri, - .pcr_before = params.pcr_before, - .pcr_after = params.pcr_after, - .measurement = params.measurement, + .measurement_time = chunk_clone(params.measurement_time), + .policy_uri = chunk_clone(params.policy_uri), + .pcr_before = chunk_clone(params.pcr_before), + .pcr_after = chunk_clone(params.pcr_after), + .measurement = chunk_clone(params.measurement), ); return &this->public.pa_tnc_attribute; |