From: Lennart Poettering Date: Mon, 31 Oct 2022 15:50:13 +0000 (+0100) Subject: measure: banks and phases list are always non-empty X-Git-Tag: v252~2^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=28acd1e6c3726802a1b07da23e037591b69e8cd4;p=thirdparty%2Fsystemd.git measure: banks and phases list are always non-empty When parsing parameters, we populate these lists with defaults when empty, hence we can rely that there's at least one bank and one phase defined. --- diff --git a/src/boot/measure.c b/src/boot/measure.c index 6372c9314b3..859810df55e 100644 --- a/src/boot/measure.c +++ b/src/boot/measure.c @@ -623,6 +623,9 @@ static int verb_calculate(int argc, char *argv[], void *userdata) { if (!arg_sections[UNIFIED_SECTION_LINUX] && !arg_current) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Either --linux= or --current must be specified, refusing."); + assert(!strv_isempty(arg_banks)); + assert(!strv_isempty(arg_phase)); + r = pcr_states_allocate(&pcr_states); if (r < 0) return r; @@ -721,6 +724,9 @@ static int verb_sign(int argc, char *argv[], void *userdata) { if (!arg_private_key) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "No private key specified, use --private-key=."); + assert(!strv_isempty(arg_banks)); + assert(!strv_isempty(arg_phase)); + /* When signing we only support JSON output */ arg_json_format_flags &= ~JSON_FORMAT_OFF; @@ -924,9 +930,6 @@ static int verb_sign(int argc, char *argv[], void *userdata) { } } - if (!v) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Unable to find a single working PCR bank."); - if (arg_json_format_flags & (JSON_FORMAT_PRETTY|JSON_FORMAT_PRETTY_AUTO)) pager_open(arg_pager_flags);