]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
measure: banks and phases list are always non-empty
authorLennart Poettering <lennart@poettering.net>
Mon, 31 Oct 2022 15:50:13 +0000 (16:50 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 31 Oct 2022 15:51:12 +0000 (16:51 +0100)
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.

src/boot/measure.c

index 6372c9314b38832ea192468cbd17ea80bacbd8af..859810df55eda694ed33e007d4de263574fa6099 100644 (file)
@@ -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);