summaryrefslogtreecommitdiff
path: root/source4/lib/registry/reg_backend_rpc.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/lib/registry/reg_backend_rpc.c')
-rw-r--r--source4/lib/registry/reg_backend_rpc.c18
1 files changed, 4 insertions, 14 deletions
diff --git a/source4/lib/registry/reg_backend_rpc.c b/source4/lib/registry/reg_backend_rpc.c
index b14b67d609..224a061762 100644
--- a/source4/lib/registry/reg_backend_rpc.c
+++ b/source4/lib/registry/reg_backend_rpc.c
@@ -315,27 +315,17 @@ static WERROR rpc_query_key(struct registry_key *k)
return r.out.result;
}
-static WERROR rpc_del_key(struct registry_key *k)
+static WERROR rpc_del_key(struct registry_key *parent, const char *name)
{
NTSTATUS status;
- struct rpc_key_data *mykeydata = k->backend_data;
+ struct rpc_key_data *mykeydata = parent->backend_data;
struct winreg_DeleteKey r;
- struct registry_key *parent;
- WERROR error;
TALLOC_CTX *mem_ctx = talloc_init("del_key");
- error = reg_key_get_parent(mem_ctx, k, &parent);
- if(!W_ERROR_IS_OK(error)) {
- talloc_destroy(mem_ctx);
- return error;
- }
-
- mykeydata = parent->backend_data;
-
r.in.handle = &mykeydata->pol;
- init_winreg_String(&r.in.key, k->name);
+ init_winreg_String(&r.in.key, name);
- status = dcerpc_winreg_DeleteKey((struct dcerpc_pipe *)k->hive->backend_data, mem_ctx, &r);
+ status = dcerpc_winreg_DeleteKey((struct dcerpc_pipe *)parent->hive->backend_data, mem_ctx, &r);
talloc_destroy(mem_ctx);