Author: tpot Date: 2005-07-06 01:53:34 +0000 (Wed, 06 Jul 2005) New Revision: 8171
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=8171 Log: According to Samba 3 and Ethereal, the winreg_OpenUnkown stuff is actually a uint16 * without the [string] attribute, a la the the system_name argument to samr_Connect(). Initialising the pointer to NULL is sufficient and we still pass the RPC-WINREG test against win2k3. Modified: branches/SAMBA_4_0/source/lib/registry/reg_backend_rpc.c 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/lib/registry/reg_backend_rpc.c =================================================================== --- branches/SAMBA_4_0/source/lib/registry/reg_backend_rpc.c 2005-07-05 15:18:24 UTC (rev 8170) +++ branches/SAMBA_4_0/source/lib/registry/reg_backend_rpc.c 2005-07-06 01:53:34 UTC (rev 8171) @@ -43,12 +43,9 @@ #define openhive(u) static WERROR open_ ## u(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct policy_handle *hnd) \ { \ struct winreg_Open ## u r; \ - struct winreg_OpenUnknown unknown; \ NTSTATUS status; \ \ - unknown.unknown0 = 0x84e0; \ - unknown.unknown1 = 0x0000; \ - r.in.unknown = &unknown; \ + r.in.system_name = 0; \ r.in.access_required = SEC_FLAG_MAXIMUM_ALLOWED; \ r.out.handle = hnd;\ \ Modified: branches/SAMBA_4_0/source/librpc/idl/winreg.idl =================================================================== --- branches/SAMBA_4_0/source/librpc/idl/winreg.idl 2005-07-05 15:18:24 UTC (rev 8170) +++ branches/SAMBA_4_0/source/librpc/idl/winreg.idl 2005-07-06 01:53:34 UTC (rev 8171) @@ -20,15 +20,10 @@ unistr *name; } winreg_String; - typedef struct { - uint16 unknown0; - uint16 unknown1; - } winreg_OpenUnknown; - /******************/ /* Function: 0x00 */ WERROR winreg_OpenHKCR( - [in] winreg_OpenUnknown *unknown, + [in] uint16 *system_name, [in] uint32 access_required, [out,ref] policy_handle *handle ); @@ -36,7 +31,7 @@ /******************/ /* Function: 0x01 */ WERROR winreg_OpenHKCU( - [in] winreg_OpenUnknown *unknown, + [in] uint16 *system_name, [in] uint32 access_required, [out,ref] policy_handle *handle ); @@ -44,7 +39,7 @@ /******************/ /* Function: 0x02 */ WERROR winreg_OpenHKLM( - [in] winreg_OpenUnknown *unknown, + [in] uint16 *system_name, [in] uint32 access_required, [out,ref] policy_handle *handle ); @@ -52,7 +47,7 @@ /******************/ /* Function: 0x03 */ WERROR winreg_OpenHKPD( - [in] winreg_OpenUnknown *unknown, + [in] uint16 *system_name, [in] uint32 access_required, [out,ref] policy_handle *handle ); @@ -60,7 +55,7 @@ /******************/ /* Function: 0x04 */ WERROR winreg_OpenHKU( - [in] winreg_OpenUnknown *unknown, + [in] uint16 *system_name, [in] uint32 access_required, [out,ref] policy_handle *handle ); @@ -293,7 +288,7 @@ /******************/ /* Function: 0x1b */ WERROR winreg_OpenHKCC( - [in] winreg_OpenUnknown *unknown, + [in] uint16 *system_name, [in] uint32 access_required, [out,ref] policy_handle *handle ); @@ -301,7 +296,7 @@ /******************/ /* Function: 0x1c */ WERROR winreg_OpenHKDD( - [in] winreg_OpenUnknown *unknown, + [in] uint16 *system_name, [in] uint32 access_required, [out,ref] policy_handle *handle ); @@ -342,7 +337,7 @@ /******************/ /* Function: 0x20 */ WERROR winreg_OpenHKPT( - [in] winreg_OpenUnknown *unknown, + [in] uint16 *system_name, [in] uint32 access_required, [out,ref] policy_handle *handle ); @@ -350,7 +345,7 @@ /******************/ /* Function: 0x21 */ WERROR winreg_OpenHKPN( - [in] winreg_OpenUnknown *unknown, + [in] uint16 *system_name, [in] uint32 access_required, [out,ref] policy_handle *handle ); Modified: branches/SAMBA_4_0/source/torture/rpc/winreg.c =================================================================== --- branches/SAMBA_4_0/source/torture/rpc/winreg.c 2005-07-05 15:18:24 UTC (rev 8170) +++ branches/SAMBA_4_0/source/torture/rpc/winreg.c 2005-07-06 01:53:34 UTC (rev 8171) @@ -475,14 +475,11 @@ { NTSTATUS status; struct winreg_OpenHKLM r; - struct winreg_OpenUnknown unknown; BOOL ret = True; printf("\ntesting OpenHKLM\n"); - unknown.unknown0 = 0x84e0; - unknown.unknown1 = 0x0000; - r.in.unknown = &unknown; + r.in.system_name = 0; r.in.access_required = SEC_FLAG_MAXIMUM_ALLOWED; r.out.handle = handle; @@ -506,14 +503,11 @@ { NTSTATUS status; struct winreg_OpenHKU r; - struct winreg_OpenUnknown unknown; BOOL ret = True; printf("\ntesting OpenHKU\n"); - unknown.unknown0 = 0x84e0; - unknown.unknown1 = 0x0000; - r.in.unknown = &unknown; + r.in.system_name = 0; r.in.access_required = SEC_FLAG_MAXIMUM_ALLOWED; r.out.handle = handle; @@ -537,14 +531,11 @@ { NTSTATUS status; struct winreg_OpenHKCR r; - struct winreg_OpenUnknown unknown; BOOL ret = True; printf("\ntesting OpenHKCR\n"); - unknown.unknown0 = 0x84e0; - unknown.unknown1 = 0x0000; - r.in.unknown = &unknown; + r.in.system_name = 0; r.in.access_required = SEC_FLAG_MAXIMUM_ALLOWED; r.out.handle = handle; @@ -649,14 +640,11 @@ { NTSTATUS status; struct winreg_OpenHKCU r; - struct winreg_OpenUnknown unknown; BOOL ret = True; printf("\ntesting OpenHKCU\n"); - unknown.unknown0 = 0x84e0; - unknown.unknown1 = 0x0000; - r.in.unknown = &unknown; + r.in.system_name = 0; r.in.access_required = SEC_FLAG_MAXIMUM_ALLOWED; r.out.handle = handle;