From: Giedrius Statkevičius Date: Sun, 22 Mar 2020 13:49:55 +0000 (+0200) Subject: systemctl: exit with 1 if no unit files found X-Git-Tag: v246-rc1~711^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F15191%2Fhead;p=thirdparty%2Fsystemd.git systemctl: exit with 1 if no unit files found Add a simple check on the number of unit files that were found: return `-ENOENT` when none is found from the function and thus `systemctl` consequently exits with `1` (`EXIT_FAILURE`) if none were found. Verification: ```bash root@image:~# systemctl list-unit-files dbus-nonexistant.service; echo $? UNIT FILE STATE VENDOR PRESET 0 unit files listed. 1 root@image:~# systemctl list-unit-files dbus.service; echo $? UNIT FILE STATE VENDOR PRESET dbus.service static enabled 1 unit files listed. 0 ``` Fixes #15082. --- diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index f8b0adc3347..58b0fd3688a 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -1659,6 +1659,9 @@ static int list_unit_files(int argc, char *argv[], void *userdata) { for (unit = units; unit < units + c; unit++) free(unit->path); + if (c == 0) + return -ENOENT; + return 0; }