]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
eacces_error_get*(): Suggest ACL/MAC error if UNIX permission bits look ok.
authorTimo Sirainen <tss@iki.fi>
Fri, 2 Mar 2012 13:31:25 +0000 (15:31 +0200)
committerTimo Sirainen <tss@iki.fi>
Fri, 2 Mar 2012 13:31:25 +0000 (15:31 +0200)
src/lib/eacces-error.c

index 71ddaae24a9d4bb3456ebe3b64498da021a1f453..f27bd670ab065b865a13e7b1afe1cd541c191cd9 100644 (file)
@@ -109,11 +109,13 @@ static int test_access(const char *path, int access_mode, string_t *errmsg)
        if (getuid() == geteuid()) {
                if (access(path, access_mode) == 0)
                        return 0;
-
                if (errno == EACCES) {
                        write_eacces_error(errmsg, path, access_mode);
-                       (void)test_manual_access(path, access_mode,
-                                                FALSE, errmsg);
+                       if (test_manual_access(path, access_mode,
+                                              FALSE, errmsg) == 0) {
+                               str_append(errmsg, " UNIX perms appear ok "
+                                          "(ACL/MAC wrong?)");
+                       }
                        errno = EACCES;
                } else {
                        str_printfa(errmsg, " access(%s, %d) failed: %m",