diff --git a/src/libpts/tcg/tcg_pts_attr_dh_nonce_finish.c b/src/libpts/tcg/tcg_pts_attr_dh_nonce_finish.c index 945a426fc..3a40df05a 100644 --- a/src/libpts/tcg/tcg_pts_attr_dh_nonce_finish.c +++ b/src/libpts/tcg/tcg_pts_attr_dh_nonce_finish.c @@ -158,7 +158,9 @@ METHOD(pa_tnc_attr_t, process, status_t, this->hash_algo = hash_algo; reader->read_data(reader, reader->remaining(reader) - this->nonce_len, &this->initiator_pub_val); + this->initiator_pub_val = chunk_clone(this->initiator_pub_val); reader->read_data(reader, this->nonce_len, &this->initiator_nonce); + this->initiator_nonce = chunk_clone(this->initiator_nonce); reader->destroy(reader); diff --git a/src/libpts/tcg/tcg_pts_attr_dh_nonce_params_resp.c b/src/libpts/tcg/tcg_pts_attr_dh_nonce_params_resp.c index 92d9cd740..d9954c29b 100644 --- a/src/libpts/tcg/tcg_pts_attr_dh_nonce_params_resp.c +++ b/src/libpts/tcg/tcg_pts_attr_dh_nonce_params_resp.c @@ -168,7 +168,9 @@ METHOD(pa_tnc_attr_t, process, status_t, reader->read_uint16(reader, &hash_algo_set); this->hash_algo_set = hash_algo_set; reader->read_data(reader, this->nonce_len, &this->responder_nonce); + this->responder_nonce = chunk_clone(this->responder_nonce); reader->read_data(reader, reader->remaining(reader), &this->responder_pub_val); + this->responder_pub_val = chunk_clone(this->responder_pub_val); reader->destroy(reader); return SUCCESS;