You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.6 KiB
42 lines
1.6 KiB
6 months ago
|
From e498b6a8d2f75e56e725faa1b57b9c5552efc812 Mon Sep 17 00:00:00 2001
|
||
|
From: Dan Streetman <ddstreet@ieee.org>
|
||
|
Date: Mon, 21 Aug 2023 10:48:20 -0400
|
||
|
Subject: [PATCH] tpm2: in validator functions, return false instead of assert
|
||
|
failure
|
||
|
|
||
|
(cherry picked from commit 064ac95d81b9ab6a6eb8849cacce928015d44e5b)
|
||
|
|
||
|
Related: RHEL-16182
|
||
|
---
|
||
|
src/shared/tpm2-util.c | 8 ++++++--
|
||
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/src/shared/tpm2-util.c b/src/shared/tpm2-util.c
|
||
|
index 2c5d1741e7..4288d1b897 100644
|
||
|
--- a/src/shared/tpm2-util.c
|
||
|
+++ b/src/shared/tpm2-util.c
|
||
|
@@ -1519,7 +1519,8 @@ size_t tpm2_tpml_pcr_selection_weight(const TPML_PCR_SELECTION *l) {
|
||
|
bool tpm2_pcr_value_valid(const Tpm2PCRValue *pcr_value) {
|
||
|
int r;
|
||
|
|
||
|
- assert(pcr_value);
|
||
|
+ if (!pcr_value)
|
||
|
+ return false;
|
||
|
|
||
|
if (!TPM2_PCR_INDEX_VALID(pcr_value->index)) {
|
||
|
log_debug("PCR index %u invalid.", pcr_value->index);
|
||
|
@@ -1546,9 +1547,12 @@ bool tpm2_pcr_value_valid(const Tpm2PCRValue *pcr_value) {
|
||
|
*
|
||
|
* 1) all entries must be sorted in ascending order (e.g. using tpm2_sort_pcr_values())
|
||
|
* 2) all entries must be unique, i.e. there cannot be 2 entries with the same hash and index
|
||
|
+ *
|
||
|
+ * Returns true if all entries are valid (or if no entries are provided), false otherwise.
|
||
|
*/
|
||
|
bool tpm2_pcr_values_valid(const Tpm2PCRValue *pcr_values, size_t n_pcr_values) {
|
||
|
- assert(pcr_values || n_pcr_values == 0);
|
||
|
+ if (!pcr_values && n_pcr_values > 0)
|
||
|
+ return false;
|
||
|
|
||
|
for (size_t i = 0; i < n_pcr_values; i++) {
|
||
|
const Tpm2PCRValue *v = &pcr_values[i];
|