summaryrefslogtreecommitdiff
path: root/source4/rpc_server
diff options
context:
space:
mode:
authorKamen Mazdrashki <kamenim@samba.org>2011-05-09 20:09:49 +0300
committerKamen Mazdrashki <kamenim@samba.org>2011-05-11 21:10:51 +0300
commit232a8dfb060dcac27801b51b9576d76fb2f93655 (patch)
treef470bf21cfdf477ef83611121cdc6f6b9ad2d989 /source4/rpc_server
parentf99d6f079a0060e4d08d7384bdf230d4d2c62b86 (diff)
downloadsamba-232a8dfb060dcac27801b51b9576d76fb2f93655.tar.gz
samba-232a8dfb060dcac27801b51b9576d76fb2f93655.tar.bz2
samba-232a8dfb060dcac27801b51b9576d76fb2f93655.zip
s4/getncchanges: Fail extended request rather than failing whole request
in case that destination_dsa_guid is not valid
Diffstat (limited to 'source4/rpc_server')
-rw-r--r--source4/rpc_server/drsuapi/getncchanges.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/source4/rpc_server/drsuapi/getncchanges.c b/source4/rpc_server/drsuapi/getncchanges.c
index 8ae536823d..0dd3ceaa4e 100644
--- a/source4/rpc_server/drsuapi/getncchanges.c
+++ b/source4/rpc_server/drsuapi/getncchanges.c
@@ -993,12 +993,14 @@ static WERROR getncchanges_change_master(struct drsuapi_bind_state *b_state,
msg->dn = drs_ObjectIdentifier_to_dn(msg, ldb, req10->naming_context);
W_ERROR_HAVE_NO_MEMORY(msg->dn);
+ /* TODO: make sure ntds_dn is a valid nTDSDSA object */
ret = dsdb_find_dn_by_guid(ldb, msg, &req10->destination_dsa_guid, &ntds_dn);
if (ret != LDB_SUCCESS) {
DEBUG(0, (__location__ ": Unable to find NTDS object for guid %s - %s\n",
GUID_string(mem_ctx, &req10->destination_dsa_guid), ldb_errstring(ldb)));
talloc_free(msg);
- return WERR_DS_DRA_INTERNAL_ERROR;
+ ctr6->extended_ret = DRSUAPI_EXOP_ERR_UNKNOWN_CALLER;
+ return WERR_OK;
}
ret = ldb_msg_add_string(msg, "fSMORoleOwner", ldb_dn_get_linearized(ntds_dn));