summaryrefslogtreecommitdiff
path: root/source4/rpc_server/winreg
diff options
context:
space:
mode:
Diffstat (limited to 'source4/rpc_server/winreg')
-rw-r--r--source4/rpc_server/winreg/rpc_winreg.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/source4/rpc_server/winreg/rpc_winreg.c b/source4/rpc_server/winreg/rpc_winreg.c
index 61920b20a8..5491bb602f 100644
--- a/source4/rpc_server/winreg/rpc_winreg.c
+++ b/source4/rpc_server/winreg/rpc_winreg.c
@@ -144,12 +144,21 @@ static WERROR dcesrv_winreg_CreateKey(struct dcesrv_call_state *dce_call,
result = reg_key_add_name(newh, key, r->in.name.name, NULL,
r->in.secdesc?&sd:NULL, (struct registry_key **)&newh->data);
+
+ r->out.action_taken = talloc(mem_ctx, enum winreg_CreateAction);
+ if (r->out.action_taken == NULL) {
+ talloc_free(newh);
+ return WERR_NOMEM;
+ }
+ *r->out.action_taken = REG_ACTION_NONE;
+
if (W_ERROR_IS_OK(result)) {
r->out.new_handle = &newh->wire_handle;
+ *r->out.action_taken = REG_CREATED_NEW_KEY;
} else {
talloc_free(newh);
}
-
+
return result;
default:
return WERR_ACCESS_DENIED;