The branch, v3-6-test has been updated
       via  865eca1 Check the return from create_acl_blob
       via  a398d1b Fix the overwriting of errno before use in a DEBUG 
statement and use the return value from store_acl_blob_fsp rather than ignoring 
it.
      from  6ea4ad3 WHATSNEW: Start release notes for 3.6.6.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit 865eca15e080d9eb9e81e91985d6859e316ce081
Author: Richard Sharpe <[email protected]>
Date:   Wed May 16 20:21:34 2012 -0700

    Check the return from create_acl_blob
    
    Autobuild-User: Richard Sharpe <[email protected]>
    Autobuild-Date: Thu May 17 07:17:29 CEST 2012 on sn-devel-104
    (cherry picked from commit 632af6645376185500820a5be9dbf5c0c3d1e515)
    
    The last two commits address bug #8945 (vfs_acl_common discards errors from
    writing to the underlying storage).

commit a398d1bc102933da01d126f2c893ad393f1fb1d2
Author: Richard Sharpe <[email protected]>
Date:   Tue May 15 07:47:14 2012 -0700

    Fix the overwriting of errno before use in a DEBUG statement and use the 
return value from store_acl_blob_fsp rather than ignoring it.
    
    Autobuild-User: Richard Sharpe <[email protected]>
    Autobuild-Date: Wed May 16 03:43:41 CEST 2012 on sn-devel-104
    (cherry picked from commit bfe4a2baeec6bc4558a617ec67532ea11f865861)

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

Summary of changes:
 source3/modules/vfs_acl_common.c |   11 ++++++++---
 source3/modules/vfs_acl_xattr.c  |    6 +++---
 2 files changed, 11 insertions(+), 6 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/modules/vfs_acl_common.c b/source3/modules/vfs_acl_common.c
index 097fd20..56da3af 100644
--- a/source3/modules/vfs_acl_common.c
+++ b/source3/modules/vfs_acl_common.c
@@ -804,10 +804,15 @@ static NTSTATUS fset_nt_acl_common(vfs_handle_struct 
*handle, files_struct *fsp,
                NDR_PRINT_DEBUG(security_descriptor,
                        CONST_DISCARD(struct security_descriptor *,psd));
        }
-       create_acl_blob(psd, &blob, XATTR_SD_HASH_TYPE_SHA256, hash);
-       store_acl_blob_fsp(handle, fsp, &blob);
+       status = create_acl_blob(psd, &blob, XATTR_SD_HASH_TYPE_SHA256, hash);
+       if (!NT_STATUS_IS_OK(status)) {
+               DEBUG(10, ("fset_nt_acl_xattr: create_acl_blob failed\n"));
+               return status;
+       }
 
-       return NT_STATUS_OK;
+       status = store_acl_blob_fsp(handle, fsp, &blob);
+
+       return status;
 }
 
 static SMB_STRUCT_DIR *opendir_acl_common(vfs_handle_struct *handle,
diff --git a/source3/modules/vfs_acl_xattr.c b/source3/modules/vfs_acl_xattr.c
index ca23fad..12ed829 100644
--- a/source3/modules/vfs_acl_xattr.c
+++ b/source3/modules/vfs_acl_xattr.c
@@ -119,12 +119,12 @@ static NTSTATUS store_acl_blob_fsp(vfs_handle_struct 
*handle,
        }
        unbecome_root();
        if (ret) {
-               errno = saved_errno;
                DEBUG(5, ("store_acl_blob_fsp: setting attr failed for file %s"
                        "with error %s\n",
                        fsp_str_dbg(fsp),
-                       strerror(errno) ));
-               return map_nt_error_from_unix(errno);
+                       strerror(saved_errno) ));
+               errno = saved_errno;
+               return map_nt_error_from_unix(saved_errno);
        }
        return NT_STATUS_OK;
 }


-- 
Samba Shared Repository

Reply via email to