From eeb1542b5ed4e195bf76996493288db489f32a0f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Giedrius=20Statkevi=C4=8Dius?= Date: Sun, 22 Mar 2020 15:49:55 +0200 Subject: [PATCH] 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. --- src/systemctl/systemctl.c | 3 +++ 1 file changed, 3 insertions(+) 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; } -- 2.47.3