[SSSD] [PATCH] IFP: Skip non-POSIX groups properly

Jakub Hrozek jhrozek at redhat.com
Mon Nov 9 21:24:08 UTC 2015


Hi,

please review!
-------------- next part --------------
>From 42572bf05b14c959a938574059694dc04c87e7a1 Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
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



More information about the sssd-devel mailing list