From: Andreas Steffen Date: Mon, 28 Nov 2011 00:13:23 +0000 (+0100) Subject: fixed measurement rollback X-Git-Tag: 4.6.2~145 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=64d4be9b860cf23b348bcaa344285383cce41bfa;p=thirdparty%2Fstrongswan.git fixed measurement rollback --- diff --git a/src/libpts/pts/components/ita/ita_comp_ima.c b/src/libpts/pts/components/ita/ita_comp_ima.c index 2c9b66a308..d7613b293c 100644 --- a/src/libpts/pts/components/ita/ita_comp_ima.c +++ b/src/libpts/pts/components/ita/ita_comp_ima.c @@ -369,6 +369,8 @@ METHOD(pts_component_t, destroy, void, pts_ita_comp_ima_t *this) { int i, count; + u_int32_t vid, name; + enum_name_t *names; for (i = 0; i < IMA_PCR_MAX; i++) { @@ -378,7 +380,11 @@ METHOD(pts_component_t, destroy, void, { count = this->pts_db->delete_comp_measurements(this->pts_db, this->name, this->keyid); - DBG1(DBG_PTS, " deleted %d measurements", count); + vid = this->name->get_vendor_id(this->name); + name = this->name->get_name(this->name); + names = pts_components->get_comp_func_names(pts_components, vid); + DBG1(DBG_PTS, "deleted %d registered %N '%N' functional component " + "evidence measurements", count, pen_names, vid, names, name); } this->list->destroy_function(this->list, (void *)free_entry); this->name->destroy(this->name); diff --git a/src/libpts/pts/components/ita/ita_comp_tboot.c b/src/libpts/pts/components/ita/ita_comp_tboot.c index c61132562e..57b809142b 100644 --- a/src/libpts/pts/components/ita/ita_comp_tboot.c +++ b/src/libpts/pts/components/ita/ita_comp_tboot.c @@ -272,12 +272,18 @@ METHOD(pts_component_t, destroy, void, pts_ita_comp_tboot_t *this) { int count; + u_int32_t vid, name; + enum_name_t *names; if (this->is_registering) { count = this->pts_db->delete_comp_measurements(this->pts_db, this->name, this->keyid); - DBG1(DBG_PTS, " deleted %d measurements", count); + vid = this->name->get_vendor_id(this->name); + name = this->name->get_name(this->name); + names = pts_components->get_comp_func_names(pts_components, vid); + DBG1(DBG_PTS, "deleted %d registered %N '%N' functional component " + "evidence measurements", count, pen_names, vid, names, name); } this->name->destroy(this->name); free(this->keyid.ptr); diff --git a/src/libpts/pts/pts_database.c b/src/libpts/pts/pts_database.c index c34b12cea4..1b7b00e4d9 100644 --- a/src/libpts/pts/pts_database.c +++ b/src/libpts/pts/pts_database.c @@ -200,7 +200,7 @@ METHOD(pts_database_t, delete_comp_measurements, int, "DELETE FROM component_hashes WHERE " "component = (SELECT id FROM components" " WHERE vendor_id = ? AND name = ? AND qualifier = ?) AND " - "key = (SELECT id FROM keys WHERE keyid = ?))", + "key = (SELECT id FROM keys WHERE keyid = ?)", DB_INT, comp_name->get_vendor_id(comp_name), DB_INT, comp_name->get_name(comp_name), DB_INT, comp_name->get_qualifier(comp_name),