From 51018a055800388bc78889d6b865db18a2c35d30 Mon Sep 17 00:00:00 2001 From: Sandrine Bailleux Date: Wed, 23 Jun 2021 15:44:18 +0200 Subject: [PATCH] refactor(measured boot): revisit error handling (3/3) - In tpm_record_measurement(): The platform layer is responsible for providing an exhaustive list of images to measure. If it doesn't then this should be treated as a programming error, as documented in [1]. Thus, turn the error test into an assertion. [1] https://trustedfirmware-a.readthedocs.io/en/latest/process/coding-guidelines.html#using-assert-to-check-for-programming-errors Change-Id: I002309c2ebdf2d348a7d12a8f7f9e82465046b8e Signed-off-by: Sandrine Bailleux --- drivers/measured_boot/event_log.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/drivers/measured_boot/event_log.c b/drivers/measured_boot/event_log.c index 7ba7165ff..0157b0300 100644 --- a/drivers/measured_boot/event_log.c +++ b/drivers/measured_boot/event_log.c @@ -243,14 +243,11 @@ int tpm_record_measurement(uintptr_t data_base, uint32_t data_size, unsigned char hash_data[MBEDTLS_MD_MAX_SIZE]; int rc; - /* Check if image_id is supported */ - while (data_ptr->id != data_id) { - if ((data_ptr++)->id == INVALID_ID) { - ERROR("%s(): image_id %u not supported\n", - __func__, data_id); - return -EINVAL; - } + /* Get the metadata associated with this image. */ + while ((data_ptr->id != INVALID_ID) && (data_ptr->id != data_id)) { + data_ptr++; } + assert(data_ptr->id != INVALID_ID); if (data_id == TOS_FW_CONFIG_ID) { tos_fw_config_base = data_base;