diff options
author | Andrew Bartlett <abartlet@samba.org> | 2013-09-17 15:20:48 -0700 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2013-09-19 12:27:50 -0700 |
commit | 4022d8632cc092f4f43fae69cc3cfb58d0d000dd (patch) | |
tree | bccdc5b7c4a313e10225af540564517dbd316ff6 /source4/dsdb/common/util.c | |
parent | 40f99625ee4447aa36c0fa5631ffa13b7003569f (diff) | |
download | samba-4022d8632cc092f4f43fae69cc3cfb58d0d000dd.tar.gz |
dsdb: Refuse to return an all-zero invocationID
This could cause an all-zero GUID to be entered into the
replPropertyMetaData, which will then fail to be replicated to other
DCs.
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'source4/dsdb/common/util.c')
-rw-r--r-- | source4/dsdb/common/util.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source4/dsdb/common/util.c b/source4/dsdb/common/util.c index 55bd73e4249..904ca1dcc9a 100644 --- a/source4/dsdb/common/util.c +++ b/source4/dsdb/common/util.c @@ -1326,6 +1326,14 @@ const struct GUID *samdb_ntds_invocation_id(struct ldb_context *ldb) } *invocation_id = samdb_result_guid(res->msgs[0], "invocationId"); + if (GUID_all_zero(invocation_id)) { + if (ldb_msg_find_ldb_val(res->msgs[0], "invocationId")) { + DEBUG(0, ("Failed to find our own NTDS Settings invocationId in the ldb!\n")); + } else { + DEBUG(0, ("Failed to find parse own NTDS Settings invocationId from the ldb!\n")); + } + goto failed; + } /* cache the domain_sid in the ldb */ if (ldb_set_opaque(ldb, "cache.invocation_id", invocation_id) != LDB_SUCCESS) { |