diff options
Diffstat (limited to 'source4/rpc_server/winreg')
-rw-r--r-- | source4/rpc_server/winreg/rpc_winreg.c | 11 |
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; |