chunk_clone after read_data

This commit is contained in:
Sansar Choinyambuu
2011-09-08 12:08:13 +02:00
committed by Andreas Steffen
parent f3aeb40bf1
commit 23f1509c4f
4 changed files with 15 additions and 1 deletions
+1
View File
@@ -197,6 +197,7 @@ METHOD(pa_tnc_attr_t, process, status_t,
reader->read_data (reader, this->meas_len, &entry->measurement);
reader->read_uint16 (reader, &entry->file_name_len);
reader->read_data(reader, entry->file_name_len, &entry->file_name);
entry->file_name = chunk_clone(entry->file_name);
this->measurements->insert_last(this->measurements, entry);
}
+6 -1
View File
@@ -153,6 +153,8 @@ METHOD(pa_tnc_attr_t, process, status_t,
u_int8_t reserved;
u_int32_t file_path_len;
char *temp;
if (this->value.len < PTS_REQ_FILE_MEAS_SIZE)
{
DBG1(DBG_TNC, "insufficient data for Request File Measurement");
@@ -168,8 +170,11 @@ METHOD(pa_tnc_attr_t, process, status_t,
reader->read_uint16(reader, &this->request_id);
reader->read_uint32(reader, &this->delimiter);
file_path_len = reader->remaining(reader);
reader->read_data(reader, file_path_len, &this->path);
this->path = chunk_clone(this->path);
DBG1(DBG_TNC, " ****** Request ID: %d File path len: %d Path: %s", this->request_id, file_path_len, this->path.ptr);
reader->destroy(reader);
return SUCCESS;
}
@@ -413,6 +413,7 @@ METHOD(pa_tnc_attr_t, process, status_t,
reader->read_data(reader, PTS_SIMPLE_COMP_EVID_MEASUREMENT_TIME_SIZE,
&this->measurement_time);
this->measurement_time = chunk_clone(this->measurement_time);
/* Optional Policy URI field is included */
if (this->flags & PTS_SIMPLE_COMP_EVID_FLAG_VER_FAIL ||
@@ -421,6 +422,7 @@ METHOD(pa_tnc_attr_t, process, status_t,
u_int16_t policy_uri_len;
reader->read_uint16(reader, &policy_uri_len);
reader->read_data(reader, policy_uri_len, &this->policy_uri);
this->policy_uri = chunk_clone(this->policy_uri);
}
/* Optional PCR value fields are included */
@@ -429,11 +431,14 @@ METHOD(pa_tnc_attr_t, process, status_t,
u_int16_t pcr_value_len;
reader->read_uint16(reader, &pcr_value_len);
reader->read_data(reader, pcr_value_len, &this->pcr_before);
this->pcr_before = chunk_clone(this->pcr_before);
reader->read_data(reader, pcr_value_len, &this->pcr_after);
this->pcr_after = chunk_clone(this->pcr_after);
}
measurement_len = reader->remaining(reader);
reader->read_data(reader, measurement_len, &this->measurement);
this->measurement = chunk_clone(this->measurement);
reader->destroy(reader);
return SUCCESS;
@@ -233,8 +233,10 @@ METHOD(pa_tnc_attr_t, process, status_t,
u_int32_t tpm_quote_sign_len;
reader->read_uint32(reader, &pcr_comp_len);
reader->read_data(reader, pcr_comp_len, &this->pcr_comp);
this->pcr_comp = chunk_clone(this->pcr_comp);
reader->read_uint32(reader, &tpm_quote_sign_len);
reader->read_data(reader, tpm_quote_sign_len, &this->tpm_quote_sign);
this->tpm_quote_sign = chunk_clone(this->tpm_quote_sign);
}
/* Optional Evidence Signature field is included */
@@ -242,6 +244,7 @@ METHOD(pa_tnc_attr_t, process, status_t,
{
u_int32_t evid_sign_len = reader->remaining(reader);
reader->read_data(reader, evid_sign_len, &this->evid_sign);
this->evid_sign = chunk_clone(this->evid_sign);
}
reader->destroy(reader);