]> arthur.barton.de Git - netatalk.git/commitdiff
0 ACEs from acl(2) is not an error
authorFrank Lahm <franklahm@googlemail.com>
Sun, 19 Sep 2010 06:29:28 +0000 (08:29 +0200)
committerFrank Lahm <franklahm@googlemail.com>
Sun, 19 Sep 2010 06:29:28 +0000 (08:29 +0200)
etc/afpd/acls.c
libatalk/vfs/acl.c

index fd6f3ab4cea3f1114a9061668f4636dccad255df..7172841edd17f116a8a528f8b6bf4e8a53d0931d 100644 (file)
@@ -636,6 +636,12 @@ static int check_acl_access(const char *path, const uuidp_t uuid, uint32_t reque
         ret = AFPERR_MISC;
         goto exit;
     }
+    if (ace_count == 0) {
+        LOG(log_debug, logtype_afpd, "check_access: 0 ACEs from get_nfsv4_acl");
+        ret = AFPERR_MISC;
+        goto exit;
+    }
+
     /* Now check requested rights */
     ret = AFPERR_ACCESS;
     i = 0;
index cd354f5c15b2cc4e1b85d7778026411dc71e1403..aa7d03dcfc2843bbda98b3f2ca6fe529a9ec0be6 100644 (file)
@@ -35,8 +35,10 @@ int get_nfsv4_acl(const char *name, ace_t **retAces)
     ace_t *aces;
 
     *retAces = NULL;
-    ace_count = acl(name, ACE_GETACLCNT, 0, NULL);
-    if (ace_count <= 0) {
+    if ((ace_count = acl(name, ACE_GETACLCNT, 0, NULL)) == 0)
+        return 0;
+
+    if (ace_count == -1) {
         LOG(log_error, logtype_afpd, "get_nfsv4_acl: acl('%s/%s', ACE_GETACLCNT): ace_count %i, error: %s",
             getcwdpath(), name, ace_count, strerror(errno));
         return -1;