diff options
author | Sandrine Bailleux <sandrine.bailleux@arm.com> | 2022-11-28 12:46:56 +0100 |
---|---|---|
committer | TrustedFirmware Code Review <review@review.trustedfirmware.org> | 2022-11-28 12:46:56 +0100 |
commit | 27c07d0a0023e721e3b05ad025f8b82ab43ee306 (patch) | |
tree | 7d76f2e8defbf4da5556a6e89d14a3d38f28aceb | |
parent | 4ccbdd86bc83ac57a9069daf5723b4197acf6181 (diff) | |
parent | 85a14bc0a9598668c4678f9eda2ba497acba5ced (diff) | |
download | trusted-firmware-a-27c07d0a0023e721e3b05ad025f8b82ab43ee306.tar.gz |
Merge "fix(rss): remove null-terminator from RSS metadata" into integration
-rw-r--r-- | include/lib/psa/measured_boot.h | 8 | ||||
-rw-r--r-- | lib/psa/measured_boot.c | 10 |
2 files changed, 10 insertions, 8 deletions
diff --git a/include/lib/psa/measured_boot.h b/include/lib/psa/measured_boot.h index bdb79d5d6e..47aa0b9050 100644 --- a/include/lib/psa/measured_boot.h +++ b/include/lib/psa/measured_boot.h @@ -34,14 +34,14 @@ * * index Slot number in which measurement is to be stored * signer_id Pointer to signer_id buffer. - * signer_id_size Size of the signer_id buffer in bytes. + * signer_id_size Size of the signer_id in bytes. * version Pointer to version buffer. - * version_size Size of the version buffer in bytes. + * version_size Size of the version string in bytes (with \0). * measurement_algo Algorithm identifier used for measurement. * sw_type Pointer to sw_type buffer. - * sw_type_size Size of the sw_type buffer in bytes. + * sw_type_size Size of the sw_type string in bytes (with \0). * measurement_value Pointer to measurement_value buffer. - * measurement_value_size Size of the measurement_value buffer in bytes. + * measurement_value_size Size of the measurement_value in bytes. * lock_measurement Boolean flag requesting whether the measurement * is to be locked. * diff --git a/lib/psa/measured_boot.c b/lib/psa/measured_boot.c index 6e9ff78f26..61747f2157 100644 --- a/lib/psa/measured_boot.c +++ b/lib/psa/measured_boot.c @@ -80,22 +80,24 @@ rss_measured_boot_extend_measurement(uint8_t index, .lock_measurement = lock_measurement, .measurement_algo = measurement_algo, .sw_type = {0}, - .sw_type_size = sw_type_size, + /* Removing \0 */ + .sw_type_size = (sw_type_size > 0) ? (sw_type_size - 1) : 0, }; psa_invec in_vec[] = { {.base = &extend_iov, .len = sizeof(struct measured_boot_extend_iovec_t)}, {.base = signer_id, .len = signer_id_size}, - {.base = version, .len = version_size}, + {.base = version, + .len = (version_size > 0) ? (version_size - 1) : 0}, {.base = measurement_value, .len = measurement_value_size} }; if (sw_type != NULL) { - if (sw_type_size > SW_TYPE_MAX_SIZE) { + if (extend_iov.sw_type_size > SW_TYPE_MAX_SIZE) { return PSA_ERROR_INVALID_ARGUMENT; } - memcpy(extend_iov.sw_type, sw_type, sw_type_size); + memcpy(extend_iov.sw_type, sw_type, extend_iov.sw_type_size); } log_measurement(index, signer_id, signer_id_size, |