summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
Diffstat (limited to 'source4')
-rw-r--r--source4/librpc/idl/winreg.idl2
-rw-r--r--source4/rpc_server/handles.c2
-rw-r--r--source4/rpc_server/winreg/rpc_winreg.c6
-rw-r--r--source4/torture/rpc/winreg.c9
4 files changed, 12 insertions, 7 deletions
diff --git a/source4/librpc/idl/winreg.idl b/source4/librpc/idl/winreg.idl
index e522d839ef..56c7ba6dde 100644
--- a/source4/librpc/idl/winreg.idl
+++ b/source4/librpc/idl/winreg.idl
@@ -75,7 +75,7 @@
[in,out] uint32 reserved,
[in] uint32 access_mask,
[in] uint32 sec_info,
- [in] sec_desc_buf data,
+ [in] sec_desc_buf *sec_desc,
[in] uint32 reserved2
);
diff --git a/source4/rpc_server/handles.c b/source4/rpc_server/handles.c
index 611dc42f76..043318c075 100644
--- a/source4/rpc_server/handles.c
+++ b/source4/rpc_server/handles.c
@@ -32,7 +32,7 @@ struct dcesrv_handle *dcesrv_handle_new(struct dcesrv_connection *dce_conn,
struct dcesrv_handle *h;
mem_ctx = talloc_init("rpc handle type %d\n", handle_type);
-if (!mem_ctx) {
+ if (!mem_ctx) {
return NULL;
}
h = talloc(mem_ctx, sizeof(*h));
diff --git a/source4/rpc_server/winreg/rpc_winreg.c b/source4/rpc_server/winreg/rpc_winreg.c
index e5658abb09..c50512d48e 100644
--- a/source4/rpc_server/winreg/rpc_winreg.c
+++ b/source4/rpc_server/winreg/rpc_winreg.c
@@ -41,6 +41,7 @@ static NTSTATUS winreg_bind(struct dcesrv_call_state *dc, const struct dcesrv_in
struct _privatedata *data;
data = talloc(dc->mem_ctx, sizeof(struct _privatedata));
data->registry = reg_open("nt4", "/home/aurelia/jelmer/NTUSER.DAT", False);
+ if(!data->registry) return NT_STATUS_UNSUCCESSFUL;
dc->conn->private = data;
return NT_STATUS_OK;
}
@@ -66,14 +67,15 @@ static NTSTATUS winreg_OpenHKCU(struct dcesrv_call_state *dce_call, TALLOC_CTX *
struct winreg_OpenHKCU *r)
{
struct _privatedata *data = dce_call->conn->private;
- REG_KEY *k = reg_open_key(reg_get_root(data->registry), "\\HKEY_CURRENT_USER");
+ REG_KEY *root = reg_get_root(data->registry);
+ REG_KEY *k = reg_open_key(root, "\\HKEY_CURRENT_USER");
if(!k) {
r->out.result = WERR_BADFILE;
} else {
struct dcesrv_handle *h = dcesrv_handle_new(dce_call->conn, HTYPE_REGKEY);
h->data = k;
- r->out.handle = &(h->wire_handle);
+ r->out.handle = &h->wire_handle;
}
r->out.result = WERR_OK;
diff --git a/source4/torture/rpc/winreg.c b/source4/torture/rpc/winreg.c
index 41804d3302..72fdc96c11 100644
--- a/source4/torture/rpc/winreg.c
+++ b/source4/torture/rpc/winreg.c
@@ -59,6 +59,7 @@ static BOOL test_CreateKey(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
struct winreg_CreateKey r;
struct policy_handle newhandle;
NTSTATUS status;
+ struct sec_desc_buf sec_desc;
printf("\ntesting CreateKey\n");
@@ -71,7 +72,9 @@ static BOOL test_CreateKey(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
r.in.access_mask = 0x02000000;
r.out.reserved = 0x0;
r.in.sec_info = 0x0;
- r.in.data = 0;
+ sec_desc.size = 0;
+ sec_desc.sd = NULL;
+ r.in.sec_desc = &sec_desc;
status = dcerpc_winreg_CreateKey(p, mem_ctx, &r);
@@ -130,7 +133,7 @@ static BOOL test_FlushKey(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
static BOOL test_OpenKey(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
struct policy_handle *hive_handle,
- char *keyname, struct policy_handle *key_handle)
+ const char *keyname, struct policy_handle *key_handle)
{
NTSTATUS status;
struct winreg_OpenKey r;
@@ -154,7 +157,7 @@ static BOOL test_OpenKey(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
}
static BOOL test_DeleteKey(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
- struct policy_handle *handle, char *key)
+ struct policy_handle *handle, const char *key)
{
NTSTATUS status;
struct winreg_DeleteKey r;