some improvements in tcg_pts_attr_file_meas.c

This commit is contained in:
Andreas Steffen
2012-11-01 17:59:54 +01:00
parent b1a2ebb686
commit b3d66a8dc5
+8 -10
View File
@@ -144,8 +144,7 @@ METHOD(pa_tnc_attr_t, build, void,
first = FALSE; first = FALSE;
} }
writer->write_data (writer, measurement); writer->write_data (writer, measurement);
writer->write_uint16(writer, strlen(filename)); writer->write_data16(writer, chunk_create(filename, strlen(filename)));
writer->write_data (writer, chunk_create(filename, strlen(filename)));
} }
enumerator->destroy(enumerator); enumerator->destroy(enumerator);
@@ -164,9 +163,9 @@ METHOD(pa_tnc_attr_t, process, status_t,
{ {
bio_reader_t *reader; bio_reader_t *reader;
u_int64_t number_of_files; u_int64_t number_of_files;
u_int16_t request_id, meas_len, filename_len; u_int16_t request_id, meas_len;
size_t len;
chunk_t measurement, filename; chunk_t measurement, filename;
size_t len;
char buf[BUF_LEN]; char buf[BUF_LEN];
status_t status = FAILED; status_t status = FAILED;
@@ -181,6 +180,7 @@ METHOD(pa_tnc_attr_t, process, status_t,
reader->read_uint64(reader, &number_of_files); reader->read_uint64(reader, &number_of_files);
reader->read_uint16(reader, &request_id); reader->read_uint16(reader, &request_id);
reader->read_uint16(reader, &meas_len); reader->read_uint16(reader, &meas_len);
*offset = PTS_FILE_MEAS_SIZE;
this->measurements = pts_file_meas_create(request_id); this->measurements = pts_file_meas_create(request_id);
@@ -191,16 +191,14 @@ METHOD(pa_tnc_attr_t, process, status_t,
DBG1(DBG_TNC, "insufficient data for PTS file measurement"); DBG1(DBG_TNC, "insufficient data for PTS file measurement");
goto end; goto end;
} }
if (!reader->read_uint16(reader, &filename_len)) *offset += meas_len;
{
DBG1(DBG_TNC, "insufficient data for filename length"); if (!reader->read_data16(reader, &filename))
goto end;
}
if (!reader->read_data(reader, filename_len, &filename))
{ {
DBG1(DBG_TNC, "insufficient data for filename"); DBG1(DBG_TNC, "insufficient data for filename");
goto end; goto end;
} }
*offset += 2 + filename.len;
len = min(filename.len, BUF_LEN-1); len = min(filename.len, BUF_LEN-1);
memcpy(buf, filename.ptr, len); memcpy(buf, filename.ptr, len);