From 90edc12197697e65cf725e97353a02d26877e36d Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 17 Sep 2008 12:33:40 -0700 Subject: [PATCH] Mark module experimental, fix crash bugs. Jeremy. (cherry picked from commit 299fbaad957d214f47bb468f751bb500bb1956a2) --- source/modules/vfs_acl_xattr.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/source/modules/vfs_acl_xattr.c b/source/modules/vfs_acl_xattr.c index 31ffe340648..ff0c2cbc89c 100644 --- a/source/modules/vfs_acl_xattr.c +++ b/source/modules/vfs_acl_xattr.c @@ -18,6 +18,8 @@ * along with this program; if not, see . */ +/* NOTE: This is an experimental module, not yet finished. JRA. */ + #include "includes.h" #include "librpc/gen_ndr/xattr.h" #include "librpc/gen_ndr/ndr_xattr.h" @@ -77,8 +79,8 @@ static NTSTATUS parse_acl_blob(const DATA_BLOB *pblob, return (*ppdesc != NULL) ? NT_STATUS_OK : NT_STATUS_NO_MEMORY; } -static NTSTATUS get_acl_blob(vfs_handle_struct *handle, - TALLOC_CTX *ctx, +static NTSTATUS get_acl_blob(TALLOC_CTX *ctx, + vfs_handle_struct *handle, files_struct *fsp, const char *name, DATA_BLOB *pblob) @@ -223,10 +225,14 @@ static NTSTATUS get_nt_acl_xattr(vfs_handle_struct *handle, static NTSTATUS create_acl_blob(SEC_DESC *psd, DATA_BLOB *pblob) { struct xattr_NTACL xacl; + struct security_descriptor_timestamp sd_ts; enum ndr_err_code ndr_err; TALLOC_CTX *ctx = talloc_tos(); struct timespec curr = timespec_current(); + ZERO_STRUCT(xacl); + ZERO_STRUCT(sd_ts); + /* Horrid hack as setting an xattr changes the ctime * on Linux. This gives a race of 1 second during * which we would not see a POSIX ACL set. @@ -234,6 +240,7 @@ static NTSTATUS create_acl_blob(SEC_DESC *psd, DATA_BLOB *pblob) curr.tv_sec += 1; xacl.version = 2; + xacl.info.sd_ts = &sd_ts; xacl.info.sd_ts->sd = psd; unix_timespec_to_nt_time(&xacl.info.sd_ts->last_changed, curr); -- 2.11.4.GIT