From e04df06f5876ec4f3b068bccc5fa4a53ab6bf9b2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Mon, 1 Jul 2019 15:31:08 +0200 Subject: [PATCH] systemctl: allow "cat" on units with bad settings That's precisely the state where 'cat' is particularly useful ;). --- src/systemctl/systemctl.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 8eb9498c19f..81f71335244 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -2508,13 +2508,14 @@ static int unit_find_paths( int r; /** - * Finds where the unit is defined on disk. Returns 0 if the unit is not found. Returns 1 if it is found, and - * sets: + * Finds where the unit is defined on disk. Returns 0 if the unit is not found. Returns 1 if it is + * found, and sets: * - the path to the unit in *ret_frament_path, if it exists on disk, - * - and a strv of existing drop-ins in *ret_dropin_paths, if the arg is not NULL and any dropins were found. + * - and a strv of existing drop-ins in *ret_dropin_paths, if the arg is not NULL and any dropins + * were found. * - * Returns -ERFKILL if the unit is masked, and -EKEYREJECTED if the unit file could not be loaded for some - * reason (the latter only applies if we are going through the service manager) + * Returns -ERFKILL if the unit is masked, and -EKEYREJECTED if the unit file could not be loaded for + * some reason (the latter only applies if we are going through the service manager). */ assert(unit_name); @@ -2549,7 +2550,7 @@ static int unit_find_paths( r = 0; goto not_found; } - if (!streq(load_state, "loaded")) + if (!STR_IN_SET(load_state, "loaded", "bad-setting")) return -EKEYREJECTED; r = sd_bus_get_property_string( -- 2.47.3