>From c0d57f83ff631e426c9ae15075d7b25a1c339750 Mon Sep 17 00:00:00 2001 From: Sumit Bose Date: Wed, 29 Oct 2014 15:20:12 +0100 Subject: [PATCH 08/24] memberof: check for empty arrays to avoid segfaults The arrays with members to add or delete may be empty, i.e. have 0 entries. In this case further processing should be skipped to avoid segfaults later on. Fixes (hopefully) https://fedorahosted.org/sssd/ticket/2430 Reviewed-by: Jakub Hrozek (cherry picked from commit a1bd8bc666df7fa696523ec8ec1dfe3d79780588) --- src/ldb_modules/memberof.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ldb_modules/memberof.c b/src/ldb_modules/memberof.c index c26a13bb94bafe62299572565cab4b53c77f3d94..c49be5d5fca593d69ba6dacc3460454080058100 100644 --- a/src/ldb_modules/memberof.c +++ b/src/ldb_modules/memberof.c @@ -3655,7 +3655,7 @@ static int mbof_mod_add(struct mbof_mod_ctx *mod_ctx, } } - if (ael != NULL) { + if (ael != NULL && ael->num > 0) { /* Add itself to the list of the parents to also get the memberuid */ parents->dns = talloc_realloc(parents, parents->dns, struct ldb_dn *, parents->num + 1); @@ -3725,7 +3725,7 @@ static int mbof_mod_delete(struct mbof_mod_ctx *mod_ctx, } /* prepare del sets */ - if (del != NULL) { + if (del != NULL && del->num > 0) { for (i = 0; i < del->num; i++) { ret = mbof_append_delop(first, del->dns[i]); if (ret != LDB_SUCCESS) { -- 2.4.3