From 193105f2d0408e2d96265935174b3cf0f100ef2e Mon Sep 17 00:00:00 2001 From: jiangchuangang Date: Mon, 29 Nov 2021 22:30:37 +0800 Subject: [PATCH 1/2] fix ConditionDirectoryNotEmpty when it comes to a Non-directory file --- src/shared/condition.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/condition.c b/src/shared/condition.c index 6e769e9d59..a86f2b9ffb 100644 --- a/src/shared/condition.c +++ b/src/shared/condition.c @@ -931,7 +931,7 @@ static int condition_test_directory_not_empty(Condition *c, char **env) { assert(c->type == CONDITION_DIRECTORY_NOT_EMPTY); r = dir_is_empty(c->parameter); - return r <= 0 && r != -ENOENT; + return r <= 0 && !IN_SET(r, -ENOENT, -ENOTDIR); } static int condition_test_file_not_empty(Condition *c, char **env) { From 7c4c9948d02ceda903ed4e4deea0d0084612625a Mon Sep 17 00:00:00 2001 From: jiangchuangang Date: Tue, 30 Nov 2021 15:25:27 +0800 Subject: [PATCH 2/2] fix ConditionPathIsReadWrite when path does not exist. --- src/shared/condition.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/shared/condition.c b/src/shared/condition.c index a86f2b9ffb..dae75a5bf5 100644 --- a/src/shared/condition.c +++ b/src/shared/condition.c @@ -894,11 +894,15 @@ static int condition_test_path_is_mount_point(Condition *c, char **env) { } static int condition_test_path_is_read_write(Condition *c, char **env) { + int r; + assert(c); assert(c->parameter); assert(c->type == CONDITION_PATH_IS_READ_WRITE); - return path_is_read_only_fs(c->parameter) <= 0; + r = path_is_read_only_fs(c->parameter); + + return r <= 0 && r != -ENOENT; } static int condition_test_cpufeature(Condition *c, char **env) {