From 200268c6db95f270a0cce21f825912b71f99df74 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Wed, 10 May 2023 10:34:43 +0200 Subject: [PATCH 1/3] fstab-generator: Take systemd.verity= into account Disable verity logic if systemd.verity= switch is disabled. --- src/fstab-generator/fstab-generator.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c index dae290c889..c60a56b067 100644 --- a/src/fstab-generator/fstab-generator.c +++ b/src/fstab-generator/fstab-generator.c @@ -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(); From 338da501412b4db395649915a841aaae4e05eb98 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Wed, 10 May 2023 10:35:16 +0200 Subject: [PATCH 2/3] fstab-generator: Unset kernel cmdline options if empty value is given --- src/fstab-generator/fstab-generator.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c index c60a56b067..8de115f419 100644 --- a/src/fstab-generator/fstab-generator.c +++ b/src/fstab-generator/fstab-generator.c @@ -1141,14 +1141,14 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat if (proc_cmdline_value_missing(key, value)) return 0; - return free_and_strdup_warn(&arg_root_what, value); + return free_and_strdup_warn(&arg_root_what, empty_to_null(value)); } else if (streq(key, "rootfstype")) { if (proc_cmdline_value_missing(key, value)) return 0; - return free_and_strdup_warn(&arg_root_fstype, value); + return free_and_strdup_warn(&arg_root_fstype, empty_to_null(value)); } else if (streq(key, "rootflags")) { @@ -1163,21 +1163,21 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat if (proc_cmdline_value_missing(key, value)) return 0; - return free_and_strdup_warn(&arg_root_hash, value); + return free_and_strdup_warn(&arg_root_hash, empty_to_null(value)); } else if (streq(key, "mount.usr")) { if (proc_cmdline_value_missing(key, value)) return 0; - return free_and_strdup_warn(&arg_usr_what, value); + return free_and_strdup_warn(&arg_usr_what, empty_to_null(value)); } else if (streq(key, "mount.usrfstype")) { if (proc_cmdline_value_missing(key, value)) return 0; - return free_and_strdup_warn(&arg_usr_fstype, value); + return free_and_strdup_warn(&arg_usr_fstype, empty_to_null(value)); } else if (streq(key, "mount.usrflags")) { @@ -1192,7 +1192,7 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat if (proc_cmdline_value_missing(key, value)) return 0; - return free_and_strdup_warn(&arg_usr_hash, value); + return free_and_strdup_warn(&arg_usr_hash, empty_to_null(value)); } else if (streq(key, "rw") && !value) arg_root_rw = true; From 32fe629abc986195c4b8fc5f9b8be1b60b48e766 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Wed, 10 May 2023 15:25:34 +0200 Subject: [PATCH 3/3] fstab-generator: Fix log message --- src/fstab-generator/fstab-generator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c index 8de115f419..0a5e9cf692 100644 --- a/src/fstab-generator/fstab-generator.c +++ b/src/fstab-generator/fstab-generator.c @@ -1005,7 +1005,7 @@ static int add_sysroot_usr_mount(void) { } if (isempty(arg_usr_what)) { - log_debug("Could not find a usr= entry on the kernel command line."); + log_debug("Could not find a mount.usr= entry on the kernel command line."); return 0; }