vfs_fake_acls: add support for SMB_ACL_TYPE_DEFAULT in fake_acls_sys_acl_set_fd()
authorRalph Boehme <slow@samba.org>
Sun, 13 Dec 2020 08:18:00 +0000 (09:18 +0100)
committerJeremy Allison <jra@samba.org>
Thu, 17 Dec 2020 18:56:28 +0000 (18:56 +0000)
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/modules/vfs_fake_acls.c

index a093fcb12ea68c1a705093bff88ad397771854a3..6e9a2f4f7462743df28d50424fd7e3a2d9d5f3aa 100644 (file)
@@ -357,7 +357,7 @@ static int fake_acls_sys_acl_set_fd(vfs_handle_struct *handle,
                                    SMB_ACL_T theacl)
 {
        int ret;
-       const char *name = FAKE_ACL_ACCESS_XATTR;
+       const char *name = NULL;
        TALLOC_CTX *frame = talloc_stackframe();
        DATA_BLOB blob = fake_acls_acl2blob(frame, theacl);
        if (!blob.data) {
@@ -366,6 +366,19 @@ static int fake_acls_sys_acl_set_fd(vfs_handle_struct *handle,
                errno = EINVAL;
                return -1;
        }
+
+       switch (type) {
+       case SMB_ACL_TYPE_ACCESS:
+               name = FAKE_ACL_ACCESS_XATTR;
+               break;
+       case SMB_ACL_TYPE_DEFAULT:
+               name = FAKE_ACL_DEFAULT_XATTR;
+               break;
+       default:
+               errno = EINVAL;
+               return -1;
+       }
+
        ret = SMB_VFS_NEXT_FSETXATTR(handle, fsp, name, blob.data, blob.length, 0);
        TALLOC_FREE(frame);
        return ret;