diff options
author | Andrew Bartlett <abartlet@samba.org> | 2022-12-16 14:22:20 +1300 |
---|---|---|
committer | Jule Anger <janger@samba.org> | 2023-02-01 16:30:11 +0000 |
commit | 613d9b75499822be4a870fd78900922be779a638 (patch) | |
tree | e449ca4e0311ab2785da9b173253654a801b4a30 | |
parent | 64df0963f8c8f7e6f203780c5d2dbb61b749a439 (diff) | |
download | samba-613d9b75499822be4a870fd78900922be779a638.tar.gz |
s4-rpc_server/drsuapi: Return correct error code for an invalid DN to EXOP_REPL_OBJ/EXOP_REPL_OBJ
BUG: https://bugzilla.samba.org/show_bug.cgi?id=10635
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
(cherry picked from commit cbe18353d8d7b2a35b965e4fc8c895ac497e67e8)
-rw-r--r-- | selftest/knownfail.d/getncchanges | 2 | ||||
-rw-r--r-- | source4/rpc_server/drsuapi/getncchanges.c | 14 |
2 files changed, 14 insertions, 2 deletions
diff --git a/selftest/knownfail.d/getncchanges b/selftest/knownfail.d/getncchanges index 1ced3870b95..e97f61b10a4 100644 --- a/selftest/knownfail.d/getncchanges +++ b/selftest/knownfail.d/getncchanges @@ -6,7 +6,5 @@ samba4.drs.getncchanges.python\(promoted_dc\).getncchanges.DrsReplicaSyncIntegri samba4.drs.getncchanges.python\(promoted_dc\).getncchanges.DrsReplicaSyncIntegrityTestCase.test_repl_get_tgt_multivalued_links\(promoted_dc\) # New tests for GetNCChanges with a GUID and a bad DN, like Azure AD Cloud Sync ^samba4.drs.getnc_exop.python\(.*\).getnc_exop.DrsReplicaSyncTestCase.test_InvalidDestDSA_and_GUID -^samba4.drs.getnc_exop.python\(.*\).getnc_exop.DrsReplicaSyncTestCase.test_InvalidNC_DummyDN_InvalidGUID_REPL_SECRET -^samba4.drs.getnc_exop.python\(.*\).getnc_exop.DrsReplicaSyncTestCase.test_InvalidNC_DummyDN_InvalidGUID_REPL_OBJ ^samba4.drs.getnc_exop.python\(.*\).getnc_exop.DrsReplicaSyncTestCase.test_InvalidDestDSA_and_GUID_RID_ALLOC ^samba4.drs.getnc_exop.python\(.*\).getnc_exop.DrsReplicaSyncTestCase.test_DummyDN_valid_GUID_REPL_SECRET diff --git a/source4/rpc_server/drsuapi/getncchanges.c b/source4/rpc_server/drsuapi/getncchanges.c index 02a6dd3f803..e2d0781fc4a 100644 --- a/source4/rpc_server/drsuapi/getncchanges.c +++ b/source4/rpc_server/drsuapi/getncchanges.c @@ -2794,6 +2794,20 @@ WERROR dcesrv_drsuapi_DsGetNCChanges(struct dcesrv_call_state *dce_call, TALLOC_ session_info->security_token, req10->naming_context, GUID_DRS_GET_CHANGES); + + if (W_ERROR_EQUAL(werr, WERR_DS_DRA_BAD_NC)) { + /* + * These extended operations need a different error if + * the supplied DN can't be found + */ + switch (req10->extended_op) { + case DRSUAPI_EXOP_REPL_OBJ: + case DRSUAPI_EXOP_REPL_SECRET: + return WERR_DS_DRA_BAD_DN; + default: + return werr; + } + } if (!W_ERROR_IS_OK(werr)) { return werr; } |