diff options
Diffstat (limited to 'src/ldb_modules')
-rw-r--r-- | src/ldb_modules/memberof.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/ldb_modules/memberof.c b/src/ldb_modules/memberof.c index 0f947fb0..f7eeb407 100644 --- a/src/ldb_modules/memberof.c +++ b/src/ldb_modules/memberof.c @@ -2617,7 +2617,12 @@ static int mbof_del_muop_callback(struct ldb_request *req, return ldb_module_done(ctx->req, NULL, NULL, LDB_ERR_OPERATIONS_ERROR); } - if (ares->error != LDB_SUCCESS) { + /* if the attribute was not present it means the db is not + * perfectly consistent but failing here is not useful + * anyway and missing entries cause no harm if we are trying + * to remove them anyway */ + if (ares->error != LDB_SUCCESS && + ares->error != LDB_ERR_NO_SUCH_ATTRIBUTE) { return ldb_module_done(ctx->req, ares->controls, ares->response, @@ -2733,7 +2738,7 @@ static int mbof_del_ghop_callback(struct ldb_request *req, * might have been directly nested in the parent as well and * updated with another replace operation. */ - if (ares->error != LDB_SUCCESS && \ + if (ares->error != LDB_SUCCESS && ares->error != LDB_ERR_NO_SUCH_ATTRIBUTE) { return ldb_module_done(ctx->req, ares->controls, |