aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndreas Steffen <andreas.steffen@strongswan.org>2012-11-01 17:59:54 +0100
committerAndreas Steffen <andreas.steffen@strongswan.org>2012-11-01 17:59:54 +0100
commitb3d66a8dc5f8660be4e170d7ec4767602d8e4c48 (patch)
treea3b2f5c777b5709a2c9835265efb57f4256b26ec /src
parentb1a2ebb686d4986fa5e21f1943111f4a922798fa (diff)
downloadstrongswan-b3d66a8dc5f8660be4e170d7ec4767602d8e4c48.tar.bz2
strongswan-b3d66a8dc5f8660be4e170d7ec4767602d8e4c48.tar.xz
some improvements in tcg_pts_attr_file_meas.c
Diffstat (limited to 'src')
-rw-r--r--src/libpts/tcg/tcg_pts_attr_file_meas.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/libpts/tcg/tcg_pts_attr_file_meas.c b/src/libpts/tcg/tcg_pts_attr_file_meas.c
index 3cc13be4a..843cde64d 100644
--- a/src/libpts/tcg/tcg_pts_attr_file_meas.c
+++ b/src/libpts/tcg/tcg_pts_attr_file_meas.c
@@ -144,8 +144,7 @@ METHOD(pa_tnc_attr_t, build, void,
first = FALSE;
}
writer->write_data (writer, measurement);
- writer->write_uint16(writer, strlen(filename));
- writer->write_data (writer, chunk_create(filename, strlen(filename)));
+ writer->write_data16(writer, chunk_create(filename, strlen(filename)));
}
enumerator->destroy(enumerator);
@@ -164,9 +163,9 @@ METHOD(pa_tnc_attr_t, process, status_t,
{
bio_reader_t *reader;
u_int64_t number_of_files;
- u_int16_t request_id, meas_len, filename_len;
- size_t len;
+ u_int16_t request_id, meas_len;
chunk_t measurement, filename;
+ size_t len;
char buf[BUF_LEN];
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_uint16(reader, &request_id);
reader->read_uint16(reader, &meas_len);
+ *offset = PTS_FILE_MEAS_SIZE;
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");
goto end;
}
- if (!reader->read_uint16(reader, &filename_len))
- {
- DBG1(DBG_TNC, "insufficient data for filename length");
- goto end;
- }
- if (!reader->read_data(reader, filename_len, &filename))
+ *offset += meas_len;
+
+ if (!reader->read_data16(reader, &filename))
{
DBG1(DBG_TNC, "insufficient data for filename");
goto end;
}
+ *offset += 2 + filename.len;
len = min(filename.len, BUF_LEN-1);
memcpy(buf, filename.ptr, len);