summaryrefslogtreecommitdiff
path: root/source/modules/vfs_catia.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/modules/vfs_catia.c')
-rw-r--r--source/modules/vfs_catia.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/source/modules/vfs_catia.c b/source/modules/vfs_catia.c
index 47d178a33f..51ee435433 100644
--- a/source/modules/vfs_catia.c
+++ b/source/modules/vfs_catia.c
@@ -36,13 +36,12 @@ static char *catia_string_replace(TALLOC_CTX *ctx,
smb_ucs2_t *ptr = NULL;
smb_ucs2_t old = oldc;
char *ret = NULL;
- size_t converted_size;
if (!s) {
return NULL;
}
- if (!push_ucs2_talloc(ctx, &tmpbuf, s, &converted_size)) {
+ if (push_ucs2_talloc(ctx, &tmpbuf, s) == -1) {
return NULL;
}
@@ -54,7 +53,7 @@ static char *catia_string_replace(TALLOC_CTX *ctx,
}
}
- if (!pull_ucs2_talloc(ctx, &ret, tmpbuf, &converted_size)) {
+ if (pull_ucs2_talloc(ctx, &ret, tmpbuf) == -1) {
TALLOC_FREE(tmpbuf);
return NULL;
}
@@ -294,6 +293,14 @@ static NTSTATUS catia_get_nt_acl(vfs_handle_struct *handle,
return SMB_VFS_NEXT_GET_NT_ACL(handle, name, security_info, ppdesc);
}
+static NTSTATUS catia_set_nt_acl(vfs_handle_struct *handle, files_struct *fsp,
+ const char *name, uint32 security_info_sent,
+ struct security_descriptor *psd)
+{
+ return SMB_VFS_NEXT_SET_NT_ACL(handle, fsp, name, security_info_sent,
+ psd);
+}
+
static int catia_chmod_acl(vfs_handle_struct *handle,
const char *name, mode_t mode)
{
@@ -355,6 +362,8 @@ SMB_VFS_LAYER_TRANSPARENT},
{SMB_VFS_OP(catia_get_nt_acl), SMB_VFS_OP_GET_NT_ACL,
SMB_VFS_LAYER_TRANSPARENT},
+ {SMB_VFS_OP(catia_set_nt_acl), SMB_VFS_OP_SET_NT_ACL,
+SMB_VFS_LAYER_TRANSPARENT},
/* POSIX ACL operations */