summaryrefslogtreecommitdiff
path: root/source3/libsmb/clisecdesc.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/libsmb/clisecdesc.c')
-rw-r--r--source3/libsmb/clisecdesc.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/source3/libsmb/clisecdesc.c b/source3/libsmb/clisecdesc.c
index 20154dbeb2..d86a9022a6 100644
--- a/source3/libsmb/clisecdesc.c
+++ b/source3/libsmb/clisecdesc.c
@@ -79,6 +79,7 @@ BOOL cli_set_secdesc(struct cli_state *cli, int fnum, SEC_DESC *sd)
char param[8];
char *rparam=NULL, *rdata=NULL;
int rparam_count=0, rdata_count=0;
+ uint32 sec_info = 0;
TALLOC_CTX *mem_ctx;
prs_struct pd;
BOOL ret = False;
@@ -97,7 +98,14 @@ BOOL cli_set_secdesc(struct cli_state *cli, int fnum, SEC_DESC *sd)
}
SIVAL(param, 0, fnum);
- SSVAL(param, 4, 0x7);
+
+ if (sd->off_dacl)
+ sec_info |= DACL_SECURITY_INFORMATION;
+ if (sd->off_owner_sid)
+ sec_info |= OWNER_SECURITY_INFORMATION;
+ if (sd->off_grp_sid)
+ sec_info |= GROUP_SECURITY_INFORMATION;
+ SSVAL(param, 4, sec_info);
if (!cli_send_nt_trans(cli,
NT_TRANSACT_SET_SECURITY_DESC,