From fdbdf6ec29bda40763d7d3e7bb2a63e2f5d60c4c Mon Sep 17 00:00:00 2001 From: Lukas Nykryn Date: Tue, 19 Aug 2014 20:53:29 +0200 Subject: systemctl: fail in the case that no unit files were found Previously systemctl died with message -bash-4.2# systemctl --root /rawhi list-unit-files (src/systemctl/systemctl.c:868) Out of memory. in the case that no unit files were found in the --root or the directory did not exist. So lets return ENOENT in the case that --root does not exist and empty list in the case that there are no unit files. --- src/shared/install.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/shared/install.c') diff --git a/src/shared/install.c b/src/shared/install.c index 0fe1371129..03c7a9da2e 100644 --- a/src/shared/install.c +++ b/src/shared/install.c @@ -2044,6 +2044,12 @@ int unit_file_get_list( if (root_dir && scope != UNIT_FILE_SYSTEM) return -EINVAL; + if (root_dir) { + r = access(root_dir, F_OK); + if (r < 0) + return -errno; + } + r = lookup_paths_init_from_scope(&paths, scope, root_dir); if (r < 0) return r; -- cgit v1.2.3-54-g00ecf