summaryrefslogtreecommitdiff
path: root/source4/dsdb/samdb/ldb_modules/operational.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/dsdb/samdb/ldb_modules/operational.c')
-rw-r--r--source4/dsdb/samdb/ldb_modules/operational.c36
1 files changed, 16 insertions, 20 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/operational.c b/source4/dsdb/samdb/ldb_modules/operational.c
index f249b357f8..03502d3de3 100644
--- a/source4/dsdb/samdb/ldb_modules/operational.c
+++ b/source4/dsdb/samdb/ldb_modules/operational.c
@@ -93,7 +93,7 @@ static int construct_canonical_name(struct ldb_module *module,
char *canonicalName;
canonicalName = ldb_dn_canonical_string(msg, msg->dn);
if (canonicalName == NULL) {
- return LDB_ERR_OPERATIONS_ERROR;
+ return ldb_operr(ldb_module_get_ctx(module));
}
return ldb_msg_add_steal_string(msg, "canonicalName", canonicalName);
}
@@ -146,8 +146,7 @@ static int construct_token_groups(struct ldb_module *module,
status = auth_context_create_from_ldb(tmp_ctx, ldb, &auth_context);
if (NT_STATUS_EQUAL(status, NT_STATUS_NO_MEMORY)) {
talloc_free(tmp_ctx);
- ldb_module_oom(module);
- return LDB_ERR_OPERATIONS_ERROR;
+ return ldb_module_oom(module);
} else if (!NT_STATUS_IS_OK(status)) {
ldb_set_errstring(ldb, "Cannot provide tokenGroups attribute, could not create authContext");
talloc_free(tmp_ctx);
@@ -157,8 +156,7 @@ static int construct_token_groups(struct ldb_module *module,
status = auth_get_server_info_principal(tmp_ctx, auth_context, NULL, msg->dn, &server_info);
if (NT_STATUS_EQUAL(status, NT_STATUS_NO_MEMORY)) {
talloc_free(tmp_ctx);
- ldb_module_oom(module);
- return LDB_ERR_OPERATIONS_ERROR;
+ return ldb_module_oom(module);
} else if (NT_STATUS_EQUAL(status, NT_STATUS_NO_SUCH_USER)) {
/* Not a user, we have no tokenGroups */
talloc_free(tmp_ctx);
@@ -172,8 +170,7 @@ static int construct_token_groups(struct ldb_module *module,
status = auth_generate_session_info(tmp_ctx, auth_context, server_info, 0, &session_info);
if (NT_STATUS_EQUAL(status, NT_STATUS_NO_MEMORY)) {
talloc_free(tmp_ctx);
- ldb_module_oom(module);
- return LDB_ERR_OPERATIONS_ERROR;
+ return ldb_module_oom(module);
} else if (!NT_STATUS_IS_OK(status)) {
talloc_free(tmp_ctx);
ldb_asprintf_errstring(ldb, "Cannot provide tokenGroups attribute: auth_generate_session_info failed: %s", nt_errstr(status));
@@ -236,7 +233,7 @@ static int construct_parent_guid(struct ldb_module *module,
v = data_blob_dup_talloc(res, parent_guid);
if (!v.data) {
talloc_free(res);
- return LDB_ERR_OPERATIONS_ERROR;
+ return ldb_oom(ldb_module_get_ctx(module));
}
ret = ldb_msg_add_steal_value(msg, "parentGUID", &v);
talloc_free(res);
@@ -284,21 +281,21 @@ static int construct_msds_isrodc_with_dn(struct ldb_module *module,
ldb = ldb_module_get_ctx(module);
if (!ldb) {
DEBUG(4, (__location__ ": Failed to get ldb \n"));
- return LDB_ERR_OPERATIONS_ERROR;
+ return ldb_operr(ldb);
}
dn = ldb_dn_new(msg, ldb, (const char *)object_category->values[0].data);
if (!dn) {
DEBUG(4, (__location__ ": Failed to create dn from %s \n",
(const char *)object_category->values[0].data));
- return LDB_ERR_OPERATIONS_ERROR;
+ return ldb_operr(ldb);
}
val = ldb_dn_get_rdn_val(dn);
if (!val) {
DEBUG(4, (__location__ ": Failed to get rdn val from %s \n",
ldb_dn_get_linearized(dn)));
- return LDB_ERR_OPERATIONS_ERROR;
+ return ldb_operr(ldb);
}
if (strequal((const char *)val->data, "NTDS-DSA")) {
@@ -323,7 +320,7 @@ static int construct_msds_isrodc_with_server_dn(struct ldb_module *module,
if (!ldb_dn_add_child_fmt(server_dn, "CN=NTDS Settings")) {
DEBUG(4, (__location__ ": Failed to add child to %s \n",
ldb_dn_get_linearized(server_dn)));
- return LDB_ERR_OPERATIONS_ERROR;
+ return ldb_operr(ldb_module_get_ctx(module));
}
ret = dsdb_module_search_dn(module, msg, &res, server_dn, attr_obj_cat, 0);
@@ -390,7 +387,7 @@ static int construct_msds_isrodc(struct ldb_module *module,
if (!object_class) {
DEBUG(4,(__location__ ": Can't get objectClass for %s \n",
ldb_dn_get_linearized(msg->dn)));
- return LDB_ERR_OPERATIONS_ERROR;
+ return ldb_operr(ldb_module_get_ctx(module));
}
for (i=0; i<object_class->num_values; i++) {
@@ -460,7 +457,7 @@ static int construct_msds_keyversionnumber(struct ldb_module *module,
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
DEBUG(0,(__location__ ": Failed to parse replPropertyMetaData for %s when trying to add msDS-KeyVersionNumber\n",
ldb_dn_get_linearized(msg->dn)));
- return LDB_ERR_OPERATIONS_ERROR;
+ return ldb_operr(ldb_module_get_ctx(module));
}
if (omd->version != 1) {
@@ -732,7 +729,7 @@ static int operational_search(struct ldb_module *module, struct ldb_request *req
ac = talloc(req, struct operational_context);
if (ac == NULL) {
- return LDB_ERR_OPERATIONS_ERROR;
+ return ldb_oom(ldb);
}
ac->module = module;
@@ -777,7 +774,7 @@ static int operational_search(struct ldb_module *module, struct ldb_request *req
: ac->attrs,
search_sub[i].extra_attr);
if (search_attrs2 == NULL) {
- return LDB_ERR_OPERATIONS_ERROR;
+ return ldb_operr(ldb);
}
/* may be NULL, talloc_free() doesn't mind */
talloc_free(search_attrs);
@@ -787,7 +784,7 @@ static int operational_search(struct ldb_module *module, struct ldb_request *req
if (!search_attrs) {
search_attrs = ldb_attr_list_copy(req, ac->attrs);
if (search_attrs == NULL) {
- return LDB_ERR_OPERATIONS_ERROR;
+ return ldb_operr(ldb);
}
}
/* Despite the ldb_attr_list_copy_add, this is safe as that fn only adds to the end */
@@ -806,7 +803,7 @@ static int operational_search(struct ldb_module *module, struct ldb_request *req
ac, operational_callback,
req);
if (ret != LDB_SUCCESS) {
- return LDB_ERR_OPERATIONS_ERROR;
+ return ldb_operr(ldb);
}
/* perform the search */
@@ -827,8 +824,7 @@ static int operational_init(struct ldb_module *ctx)
data = talloc_zero(ctx, struct operational_data);
if (!data) {
- ldb_module_oom(ctx);
- return LDB_ERR_OPERATIONS_ERROR;
+ return ldb_module_oom(ctx);
}
ldb_module_set_private(ctx, data);