]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
fstab-generator: Take systemd.verity= into account
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Wed, 10 May 2023 08:34:43 +0000 (10:34 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Thu, 11 May 2023 12:44:14 +0000 (14:44 +0200)
Disable verity logic if systemd.verity= switch is disabled.

src/fstab-generator/fstab-generator.c

index dae290c88929b222f9d5b80bc7312a9a7a0bbefa..c60a56b0676c889466e5fd9c16f6a4ec4316a59e 100644 (file)
@@ -60,6 +60,7 @@ static char *arg_usr_fstype = NULL;
 static char *arg_usr_options = NULL;
 static char *arg_usr_hash = NULL;
 static VolatileMode arg_volatile_mode = _VOLATILE_MODE_INVALID;
+static bool arg_verity = true;
 
 STATIC_DESTRUCTOR_REGISTER(arg_root_what, freep);
 STATIC_DESTRUCTOR_REGISTER(arg_root_fstype, freep);
@@ -1216,6 +1217,14 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat
                         log_warning("Failed to parse systemd.swap switch %s. Ignoring.", value);
                 else
                         arg_swap_enabled = r;
+
+        } else if (streq(key, "systemd.verity")) {
+
+                r = value ? parse_boolean(value) : 1;
+                if (r < 0)
+                        log_warning("Failed to parse systemd.verity= kernel command line switch %s. Ignoring.", value);
+                else
+                        arg_verity = r;
         }
 
         return 0;
@@ -1233,6 +1242,9 @@ static int determine_device(char **what, const char *hash, const char *name) {
         if (!hash)
                 return 0;
 
+        if (!arg_verity)
+                return 0;
+
         *what = path_join("/dev/mapper/", name);
         if (!*what)
                 return log_oom();