]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
dsdb: Clearly fail to replicate objects not NC_HEAD with a all-zero parentGUID
authorAndrew Bartlett <abartlet@samba.org>
Tue, 15 Mar 2016 02:09:50 +0000 (15:09 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 6 Jun 2016 14:36:22 +0000 (16:36 +0200)
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
source4/dsdb/repl/replicated_objects.c

index 33dd8211e349c04a76027509e3e30a2bf6493087..d2acff30b5bc329badda3a3df0fc9744863d43d8 100644 (file)
@@ -616,6 +616,11 @@ WERROR dsdb_convert_object_ex(struct ldb_context *ldb,
 
        if (in->parent_object_guid == NULL) {
                out->parent_guid = NULL;
+               if ((instanceType & INSTANCE_TYPE_IS_NC_HEAD) == 0) {
+                       DEBUG(0, ("Refusing to replicate %s from a server that did not provide a parentGUID!\n",
+                                 ldb_dn_get_linearized(msg->dn)));
+                       return WERR_DS_DRA_INCONSISTENT_DIT;
+               }
        } else {
                out->parent_guid = talloc(mem_ctx, struct GUID);
                W_ERROR_HAVE_NO_MEMORY(out->parent_guid);