From 3ea37e96974387d57593dfb1010ee6974c7d9e1e Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Wed, 10 Mar 2010 10:25:03 -0500 Subject: Fix memberof calculation when deleting groups With complex hierarchies it could happen that the group just deleted was re-added by mistake to the list of groups a user is member of, causing the user to have a stray memberof value in its entry. --- src/ldb_modules/memberof.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/ldb_modules/memberof.c') diff --git a/src/ldb_modules/memberof.c b/src/ldb_modules/memberof.c index e0a241a5e..c3f57630e 100644 --- a/src/ldb_modules/memberof.c +++ b/src/ldb_modules/memberof.c @@ -1876,6 +1876,11 @@ static int mbof_del_anc_callback(struct ldb_request *req, talloc_free(valdn); continue; } + /* do not re-add the original deleted entry by mistake */ + if (ldb_dn_compare(valdn, del_ctx->first->entry_dn) == 0) { + talloc_free(valdn); + continue; + } new_list->dns = talloc_realloc(new_list, new_list->dns, struct ldb_dn *, -- cgit