diff options
author | Richard Sharpe <realrichardsharpe@gmail.com> | 2012-05-15 07:47:14 -0700 |
---|---|---|
committer | Richard Sharpe <sharpe@samba.org> | 2012-05-16 03:43:40 +0200 |
commit | bfe4a2baeec6bc4558a617ec67532ea11f865861 (patch) | |
tree | 93bc48a8428c072abbb18c63e7599fadf5907509 | |
parent | b6e36089e5bd43baeb41e8299ad8970b1cd32c88 (diff) | |
download | samba-bfe4a2baeec6bc4558a617ec67532ea11f865861.tar.gz samba-bfe4a2baeec6bc4558a617ec67532ea11f865861.tar.bz2 samba-bfe4a2baeec6bc4558a617ec67532ea11f865861.zip |
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 <sharpe@samba.org>
Autobuild-Date: Wed May 16 03:43:41 CEST 2012 on sn-devel-104
-rw-r--r-- | source3/modules/vfs_acl_common.c | 7 | ||||
-rw-r--r-- | source3/modules/vfs_acl_xattr.c | 6 |
2 files changed, 8 insertions, 5 deletions
diff --git a/source3/modules/vfs_acl_common.c b/source3/modules/vfs_acl_common.c index 241bc8f7e6..221b43f748 100644 --- a/source3/modules/vfs_acl_common.c +++ b/source3/modules/vfs_acl_common.c @@ -592,10 +592,13 @@ static NTSTATUS fset_nt_acl_common(vfs_handle_struct *handle, files_struct *fsp, NDR_PRINT_DEBUG(security_descriptor, discard_const_p(struct security_descriptor, psd)); } + /* + * Perhaps create_acl_blob should have a status return as well + */ create_acl_blob(psd, &blob, XATTR_SD_HASH_TYPE_SHA256, hash); - store_acl_blob_fsp(handle, fsp, &blob); + status = store_acl_blob_fsp(handle, fsp, &blob); - return NT_STATUS_OK; + return status; } static int acl_common_remove_object(vfs_handle_struct *handle, diff --git a/source3/modules/vfs_acl_xattr.c b/source3/modules/vfs_acl_xattr.c index 5653657066..c1b0a60e16 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; } |