diff options
Diffstat (limited to 'source4/rpc_server/winreg/rpc_winreg.c')
-rw-r--r-- | source4/rpc_server/winreg/rpc_winreg.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/source4/rpc_server/winreg/rpc_winreg.c b/source4/rpc_server/winreg/rpc_winreg.c index 681e3b918f..3c00944d59 100644 --- a/source4/rpc_server/winreg/rpc_winreg.c +++ b/source4/rpc_server/winreg/rpc_winreg.c @@ -356,6 +356,13 @@ static WERROR dcesrv_winreg_OpenKey(struct dcesrv_call_state *dce_call, r->out.handle = &newh->wire_handle; } else { talloc_free(newh); + /* + * Windows expects WERR_BADFILE when a particular key + * is not found. If we receive WERR_NOT_FOUND from the lower + * layer calls, translate it here to return what is expected. + */ + if (W_ERROR_EQUAL(result, WERR_NOT_FOUND)) + return WERR_BADFILE; } return result; |