diff options
Diffstat (limited to 'source4/dsdb/schema/schema_info_attr.c')
-rw-r--r-- | source4/dsdb/schema/schema_info_attr.c | 7 |
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) { |