Author: gd
Date: 2007-10-25 11:12:02 +0000 (Thu, 25 Oct 2007)
New Revision: 25730

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25730

Log:
Fix IDL for incorrect winreg_SetKeySecurity.

Guenther

Modified:
   branches/SAMBA_4_0/source/librpc/idl/winreg.idl
   branches/SAMBA_4_0/source/torture/rpc/winreg.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/idl/winreg.idl
===================================================================
--- branches/SAMBA_4_0/source/librpc/idl/winreg.idl     2007-10-25 11:07:30 UTC 
(rev 25729)
+++ branches/SAMBA_4_0/source/librpc/idl/winreg.idl     2007-10-25 11:12:02 UTC 
(rev 25730)
@@ -273,7 +273,7 @@
        /* Function: 0x15 */
        WERROR winreg_SetKeySecurity(
                [in,ref] policy_handle *handle,
-               [in] winreg_AccessMask access_mask,
+               [in] security_secinfo sec_info,
                [in,ref] KeySecurityData *sd
        );
 

Modified: branches/SAMBA_4_0/source/torture/rpc/winreg.c
===================================================================
--- branches/SAMBA_4_0/source/torture/rpc/winreg.c      2007-10-25 11:07:30 UTC 
(rev 25729)
+++ branches/SAMBA_4_0/source/torture/rpc/winreg.c      2007-10-25 11:12:02 UTC 
(rev 25730)
@@ -228,6 +228,7 @@
        struct winreg_SetKeySecurity r;
        struct KeySecurityData *sdata = NULL;
        DATA_BLOB sdblob;
+       uint32_t sec_info;
 
        ZERO_STRUCT(r);
 
@@ -245,8 +246,23 @@
        sdata->size = sdblob.length;
        sdata->len = sdblob.length;
 
+       sec_info = SECINFO_UNPROTECTED_SACL | SECINFO_UNPROTECTED_DACL;
+
+       if (sd->owner_sid) {
+               sec_info |= SECINFO_OWNER;
+       }
+       if (sd->group_sid) {
+               sec_info |= SECINFO_GROUP;
+       }
+       if (sd->sacl) {
+               sec_info |= SECINFO_SACL;
+       }
+       if (sd->dacl) {
+               sec_info |= SECINFO_DACL;
+       }
+
        r.in.handle = handle;
-       r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
+       r.in.sec_info = sec_info;
        r.in.sd = sdata;
 
        torture_assert_ntstatus_ok(tctx,

Reply via email to