What's wrong with this piece of code from source3/modules/vfs_acl_xattr.c around like 126 or so?
Jeremy Allison
jra at samba.org
Tue May 15 09:53:10 MDT 2012
On Tue, May 15, 2012 at 07:00:07AM -0700, Richard Sharpe wrote:
>
> These are the changes I am thinking of. They are building now and if
> they build cleanly, I will commit them later today (after further
> tests at work.)
>
> diff --git a/source3/modules/vfs_acl_common.c b/source3/modules/vfs_acl_common.c
> index 241bc8f..221b43f 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 *hand
> 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 5653657..17d1a8f 100644
> --- a/source3/modules/vfs_acl_xattr.c
> +++ b/source3/modules/vfs_acl_xattr.c
> @@ -119,12 +119,11 @@ static NTSTATUS store_acl_blob_fsp(vfs_handle_struct *hand
> }
> 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) ));
> + return map_nt_error_from_unix(saved_errno);
> }
> return NT_STATUS_OK;
> }
Please add a line to set errno from saved_errno just
before you do the:
return map_nt_error_from_unix(saved_errno);
call. Remember, it's important for VFS modules to
set errno correctly (which is why I often use that
code structure - usually without the DEBUG error
of course :-).
Jeremy.
More information about the samba-technical
mailing list