diff options
Diffstat (limited to 'source4/rpc_server')
-rw-r--r-- | source4/rpc_server/winreg/rpc_winreg.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source4/rpc_server/winreg/rpc_winreg.c b/source4/rpc_server/winreg/rpc_winreg.c index 681e3b918f..7eba428aef 100644 --- a/source4/rpc_server/winreg/rpc_winreg.c +++ b/source4/rpc_server/winreg/rpc_winreg.c @@ -411,7 +411,15 @@ static WERROR dcesrv_winreg_QueryValue(struct dcesrv_call_state *dce_call, &value_type, &value_data); if (!W_ERROR_IS_OK(result)) { - return result; + /* + * Windows expects WERR_BADFILE when a particular value + * 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; + else + return result; } /* Just asking for the size of the buffer */ |