summaryrefslogtreecommitdiff
path: root/source4/dsdb/schema/schema_info_attr.c
diff options
context:
space:
mode:
authorKamen Mazdrashki <kamenim@samba.org>2010-04-08 08:27:07 +0300
committerKamen Mazdrashki <kamenim@samba.org>2010-04-09 12:21:33 +0300
commitfbef33fb7369f57e6851d3766f87c953ca2d26bd (patch)
tree1b4e78bad78e959f96919c48b428172b5f1c3fbc /source4/dsdb/schema/schema_info_attr.c
parent2763a4ac4e8c93701e00a3baa9fb2dfa24b776f4 (diff)
downloadsamba-fbef33fb7369f57e6851d3766f87c953ca2d26bd.tar.gz
samba-fbef33fb7369f57e6851d3766f87c953ca2d26bd.tar.bz2
samba-fbef33fb7369f57e6851d3766f87c953ca2d26bd.zip
s4/dsdb: Let caller to control if valid invocationId is critical or zero-guid is acceptable
Diffstat (limited to 'source4/dsdb/schema/schema_info_attr.c')
-rw-r--r--source4/dsdb/schema/schema_info_attr.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/source4/dsdb/schema/schema_info_attr.c b/source4/dsdb/schema/schema_info_attr.c
index 2d3dfc827c..21ffb1d79f 100644
--- a/source4/dsdb/schema/schema_info_attr.c
+++ b/source4/dsdb/schema/schema_info_attr.c
@@ -297,14 +297,19 @@ static WERROR dsdb_module_schema_info_write(struct ldb_module *ldb_module,
/**
* Creates new dsdb_schema_info object using
* invocationId from supplied ldb
+ * @param check_invocation_id Error out if invocationId is not yet set
*/
-WERROR dsdb_schema_info_create(struct ldb_context *ldb, TALLOC_CTX *mem_ctx, struct dsdb_schema_info **_schema_info)
+WERROR dsdb_schema_info_create(struct ldb_context *ldb, bool check_invocation_id,
+ TALLOC_CTX *mem_ctx, struct dsdb_schema_info **_schema_info)
{
const struct GUID *invocation_id;
struct dsdb_schema_info *schema_info;
/* try to determine invocationId from ldb */
invocation_id = samdb_ntds_invocation_id(ldb);
+ if (check_invocation_id && !invocation_id) {
+ return WERR_INTERNAL_DB_CORRUPTION;
+ }
schema_info = talloc(mem_ctx, struct dsdb_schema_info);
if (!schema_info) {