The branch, master has been updated
       via  0a376b23dba s3: VFS: zfsacl: Ensure we use a pathref fd, not an io 
fd, for getting/setting ZFS ACLs.
      from  14db80fe613 docs-xml: Use /var/tmp for spooling in smb.conf.5

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 0a376b23dbaaec551d0ed48b7098129c09eec1bc
Author: Jeremy Allison <[email protected]>
Date:   Mon Oct 11 12:26:57 2021 -0700

    s3: VFS: zfsacl: Ensure we use a pathref fd, not an io fd, for 
getting/setting ZFS ACLs.
    
    Don't use path-based calls.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=14685
    
    Signed-off-by: Jeremy Allison <[email protected]>
    Reviewed-by: Ralph Böhme <[email protected]>
    
    Autobuild-User(master): Jeremy Allison <[email protected]>
    Autobuild-Date(master): Tue Oct 12 18:14:27 UTC 2021 on sn-devel-184

-----------------------------------------------------------------------

Summary of changes:
 source3/modules/vfs_zfsacl.c | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/modules/vfs_zfsacl.c b/source3/modules/vfs_zfsacl.c
index b04c6e560ad..69a1db59249 100644
--- a/source3/modules/vfs_zfsacl.c
+++ b/source3/modules/vfs_zfsacl.c
@@ -235,13 +235,12 @@ static bool zfs_process_smbacl(vfs_handle_struct *handle, 
files_struct *fsp,
        SMB_ASSERT(i == naces);
 
        /* store acl */
-       fd = fsp_get_io_fd(fsp);
-       if (fd != -1) {
-               rv = facl(fd, ACE_SETACL, naces, acebuf);
-       }
-       else {
-               rv = acl(fsp->fsp_name->base_name, ACE_SETACL, naces, acebuf);
+       fd = fsp_get_pathref_fd(fsp);
+       if (fd == -1) {
+               errno = EBADF;
+               return false;
        }
+       rv = facl(fd, ACE_SETACL, naces, acebuf);
        if (rv != 0) {
                if(errno == ENOSYS) {
                        DEBUG(9, ("acl(ACE_SETACL, %s): Operation is not "
@@ -322,11 +321,11 @@ static int fget_zfsacl(TALLOC_CTX *mem_ctx,
        ace_t *acebuf = NULL;
        int fd;
 
-       fd = fsp_get_io_fd(fsp);
+       fd = fsp_get_pathref_fd(fsp);
        if (fd == -1) {
-               return get_zfsacl(mem_ctx, fsp->fsp_name, outbuf);
+               errno = EBADF;
+               return -1;
        }
-
        naces = facl(fd, ACE_GETACLCNT, 0, NULL);
        if (naces == -1) {
                int dbg_level = 10;


-- 
Samba Shared Repository

Reply via email to