>From 42572bf05b14c959a938574059694dc04c87e7a1 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Mon, 9 Nov 2015 22:12:05 +0100 Subject: [PATCH] IFP: Skip non-POSIX groups properly When ifp_users_user_get_groups is called, for example via GetAll and the list of groups contains a non-POSIX group, we skip an array member, resulting in random memory being passed to the caller. Resolves: https://fedorahosted.org/sssd/ticket/2863 --- src/responder/ifp/ifp_users.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/responder/ifp/ifp_users.c b/src/responder/ifp/ifp_users.c index 4746de368a016779746e7346ee615a2015dd5b69..e542e811c7a5384ddcd2a4bc93c2280ead1c0574 100644 --- a/src/responder/ifp/ifp_users.c +++ b/src/responder/ifp/ifp_users.c @@ -806,8 +806,10 @@ void ifp_users_user_get_groups(struct sbus_request *sbus_req, continue; } - out[i] = ifp_groups_build_path_from_msg(out, domain, res->msgs[i]); - if (out[i] == NULL) { + out[num_groups] = ifp_groups_build_path_from_msg(out, + domain, + res->msgs[i]); + if (out[num_groups] == NULL) { DEBUG(SSSDBG_CRIT_FAILURE, "ifp_groups_build_path() failed\n"); return; } -- 2.4.3