summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2005-07-06 01:53:34 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:19:16 -0500
commit372f3fae88799ce321342dd976a317a8afc375e2 (patch)
tree65ae02272f254d820894b7528e5f2d3163a410ca
parenta7fd68286abb3aa581b2676255a24dcff3b6cae1 (diff)
downloadsamba-372f3fae88799ce321342dd976a317a8afc375e2.tar.gz
samba-372f3fae88799ce321342dd976a317a8afc375e2.tar.bz2
samba-372f3fae88799ce321342dd976a317a8afc375e2.zip
r8171: 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. (This used to be commit 407d962dacf7c833b36cb739e48fe97226968a34)
-rw-r--r--source4/lib/registry/reg_backend_rpc.c5
-rw-r--r--source4/librpc/idl/winreg.idl23
-rw-r--r--source4/torture/rpc/winreg.c20
3 files changed, 14 insertions, 34 deletions
diff --git a/source4/lib/registry/reg_backend_rpc.c b/source4/lib/registry/reg_backend_rpc.c
index 3c38b5d312..73d2d54687 100644
--- a/source4/lib/registry/reg_backend_rpc.c
+++ b/source4/lib/registry/reg_backend_rpc.c
@@ -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;\
\
diff --git a/source4/librpc/idl/winreg.idl b/source4/librpc/idl/winreg.idl
index dc5ccdd02d..1f31d17f8c 100644
--- a/source4/librpc/idl/winreg.idl
+++ b/source4/librpc/idl/winreg.idl
@@ -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
);
diff --git a/source4/torture/rpc/winreg.c b/source4/torture/rpc/winreg.c
index 312d6e2414..969bba0691 100644
--- a/source4/torture/rpc/winreg.c
+++ b/source4/torture/rpc/winreg.c
@@ -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;