From: Michal Schmidt Date: Fri, 23 Sep 2011 00:10:00 +0000 (+0200) Subject: condition: fix reversed tests if path does not exist at all X-Git-Tag: v36~17 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=1f8fef5a44e6ce711808665bca6eb43d604fe279 condition: fix reversed tests if path does not exist at all CONDITION_PATH_IS_DIRECTORY, CONDITION_PATH_IS_SYMBOLIC_LINK and CONDITION_FILE_IS_EXECUTABLE gave reversed results when the path did not exist at all. --- diff --git a/src/condition.c b/src/condition.c index f84c81bd8..1438ea85a 100644 --- a/src/condition.c +++ b/src/condition.c @@ -163,7 +163,7 @@ bool condition_test(Condition *c) { struct stat st; if (stat(c->parameter, &st) < 0) - return !c->negate; + return c->negate; return S_ISDIR(st.st_mode) == !c->negate; } @@ -171,7 +171,7 @@ bool condition_test(Condition *c) { struct stat st; if (lstat(c->parameter, &st) < 0) - return !c->negate; + return c->negate; return S_ISLNK(st.st_mode) == !c->negate; } @@ -189,7 +189,7 @@ bool condition_test(Condition *c) { struct stat st; if (stat(c->parameter, &st) < 0) - return !c->negate; + return c->negate; return (S_ISREG(st.st_mode) && (st.st_mode & 0111)) == !c->negate; }