r8171: According to Samba 3 and Ethereal, the winreg_OpenUnkown stuff is
authorTim Potter <tpot@samba.org>
Wed, 6 Jul 2005 01:53:34 +0000 (01:53 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:19:16 +0000 (13:19 -0500)
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.
(This used to be commit 407d962dacf7c833b36cb739e48fe97226968a34)

source4/lib/registry/reg_backend_rpc.c
source4/librpc/idl/winreg.idl
source4/torture/rpc/winreg.c

index 3c38b5d312e8ce75a1f43b50df1f8365edd4fb3c..73d2d546876eac232452515a5acd6155b3f66e04 100644 (file)
@@ -43,12 +43,9 @@ static void init_winreg_String(struct winreg_String *name, const char *s)
 #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;\
        \
index dc5ccdd02dc6a4f70f5006ac5ae706476056ce71..1f31d17f8c6c7b86d0dcc74258d77f025e85b0c4 100644 (file)
                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
        );
        /******************/
        /* Function: 0x1b */
        WERROR winreg_OpenHKCC(
-               [in]      winreg_OpenUnknown *unknown,
+               [in]      uint16 *system_name,
                [in]      uint32 access_required,
                [out,ref] policy_handle *handle
        );
        /******************/
        /* Function: 0x1c */
        WERROR winreg_OpenHKDD(
-               [in]      winreg_OpenUnknown *unknown,
+               [in]      uint16 *system_name,
                [in]      uint32 access_required,
                [out,ref] policy_handle *handle
        );
        /******************/
        /* Function: 0x20 */
        WERROR winreg_OpenHKPT(
-               [in]      winreg_OpenUnknown *unknown,
+               [in]      uint16 *system_name,
                [in]      uint32 access_required,
                [out,ref] policy_handle *handle
        );
        /******************/
        /* Function: 0x21 */
        WERROR winreg_OpenHKPN(
-               [in]      winreg_OpenUnknown *unknown,
+               [in]      uint16 *system_name,
                [in]      uint32 access_required,
                [out,ref] policy_handle *handle
        );
index 312d6e24144ff0daba8bce496e9e64f32da4579f..969bba069152ac99d52429feb7afd4f60e4829f9 100644 (file)
@@ -475,14 +475,11 @@ static BOOL test_OpenHKLM(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 {
        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 @@ static BOOL test_OpenHKU(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 {
        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 @@ static BOOL test_OpenHKCR(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 {
        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 @@ static BOOL test_OpenHKCU(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 {
        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;