From: Sergey Kitov Date: Wed, 20 Sep 2017 07:46:16 +0000 (+0300) Subject: lib: unlink_directory() return value is changed to 1 in case of no error. X-Git-Tag: 2.3.0.rc1~959 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=39715db8bd526c7080f226a8ec94ca1833951b62;p=thirdparty%2Fdovecot%2Fcore.git lib: unlink_directory() return value is changed to 1 in case of no error. --- diff --git a/src/lib/unlink-directory.c b/src/lib/unlink-directory.c index 1930a1f1ae..f95a65cb67 100644 --- a/src/lib/unlink-directory.c +++ b/src/lib/unlink-directory.c @@ -256,8 +256,6 @@ int unlink_directory(const char *dir, enum unlink_directory_flags flags, because of recursion */ *error_r = NULL; ret = unlink_directory_r(dir, flags, error_r); - if (ret < 0 && errno == ENOENT) - ret = 0; old_errno = errno; if (fchdir(fd) < 0) { @@ -268,7 +266,7 @@ int unlink_directory(const char *dir, enum unlink_directory_flags flags, if (ret < 0) { errno = old_errno; - return -1; + return errno == ENOENT ? 0 : 1; } if ((flags & UNLINK_DIRECTORY_FLAG_RMDIR) != 0) { @@ -278,8 +276,8 @@ int unlink_directory(const char *dir, enum unlink_directory_flags flags, /* standardize errno */ errno = ENOTEMPTY; } - return -1; + return errno == ENOENT ? 0 : 1; } } - return 0; + return 1; } diff --git a/src/lib/unlink-directory.h b/src/lib/unlink-directory.h index 3b1433950c..fbc2a44782 100644 --- a/src/lib/unlink-directory.h +++ b/src/lib/unlink-directory.h @@ -11,9 +11,10 @@ enum unlink_directory_flags { }; /* Unlink directory and/or everything under it. - Returns 0 if successful, -1 if error. If the directory doesn't exist, - -1 and errno=ENOENT is returned. The returned error message contains the - exact syscall that failed, e.g. "open(path) failed: Permission denied" */ + Returns 1 if successful, 0 if error is ENOENT, -1 if other error. + The returned error message contains the exact syscall that failed, + e.g. "open(path) failed: Permission denied" + In case of ENOENT error, error message is also set. */ int unlink_directory(const char *dir, enum unlink_directory_flags flags, const char **error_r);