1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-09 08:58:35 +03:00

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)
This commit is contained in:
Tim Potter 2005-07-06 01:53:34 +00:00 committed by Gerald (Jerry) Carter
parent a7fd68286a
commit 372f3fae88
3 changed files with 14 additions and 34 deletions

View 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;\
\

View File

@ -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
);

View 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;