summaryrefslogtreecommitdiff
path: root/src/firstboot/firstboot.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/firstboot/firstboot.c')
-rw-r--r--src/firstboot/firstboot.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/firstboot/firstboot.c b/src/firstboot/firstboot.c
index 7c615abbc5..fd7051f21e 100644
--- a/src/firstboot/firstboot.c
+++ b/src/firstboot/firstboot.c
@@ -826,7 +826,7 @@ static int parse_argv(int argc, char *argv[]) {
}
int main(int argc, char *argv[]) {
- _cleanup_free_ char *enabled = NULL;
+ bool enabled;
int r;
r = parse_argv(argc, argv);
@@ -839,15 +839,14 @@ int main(int argc, char *argv[]) {
umask(0022);
- r = get_proc_cmdline_key("systemd.firstboot=", &enabled);
- if (r < 0)
- return r;
- if (r > 0) {
- r = parse_boolean(enabled);
- if (r == 0)
- goto finish;
- if (r < 0)
- log_warning_errno(r, "Failed to parse systemd.firstboot= kernel command line argument, ignoring: %s", enabled);
+ r = proc_cmdline_get_bool("systemd.firstboot", &enabled);
+ if (r < 0) {
+ log_error_errno(r, "Failed to parse systemd.firstboot= kernel command line argument, ignoring.");
+ goto finish;
+ }
+ if (r > 0 && !enabled) {
+ r = 0; /* disabled */
+ goto finish;
}
r = process_locale();