From: Dan Streetman Date: Mon, 21 Aug 2023 14:48:20 +0000 (-0400) Subject: tpm2: in validator functions, return false instead of assert failure X-Git-Tag: v255-rc1~630^2~17 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=064ac95d81b9ab6a6eb8849cacce928015d44e5b;p=thirdparty%2Fsystemd.git tpm2: in validator functions, return false instead of assert failure --- diff --git a/src/shared/tpm2-util.c b/src/shared/tpm2-util.c index 51cb1beeb92..35433371be7 100644 --- a/src/shared/tpm2-util.c +++ b/src/shared/tpm2-util.c @@ -1524,7 +1524,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); @@ -1551,9 +1552,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];