r3776: Fix for bug #2038 from Johann Hanne <jhml@gmx.net>. Don't check
authorJeremy Allison <jra@samba.org>
Mon, 15 Nov 2004 23:03:37 +0000 (23:03 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 15:53:17 +0000 (10:53 -0500)
for no groups after every lookup - move check to the end as we should
only fail if all lookups fail.
Jeremy.
(This used to be commit 3b40c1e4365f37b967e14be02c6aa52893a80f51)

source3/nsswitch/winbindd_group.c

index eec0f7221774bb3968fde8406545613dd5874bd6..7eb0585c374f27385bb65ebbe6f3177131bbb543 100644 (file)
@@ -1089,9 +1089,6 @@ enum winbindd_result winbindd_getgroups(struct winbindd_cli_state *state)
 
                        add_gids_from_group_sid(&info3->other_sids[i].sid,
                                                &gid_list, &num_gids);
-
-                       if (gid_list == NULL)
-                               goto done;
                }
 
                for (i = 0; i < info3->num_groups2; i++) {
@@ -1103,9 +1100,6 @@ enum winbindd_result winbindd_getgroups(struct winbindd_cli_state *state)
 
                        add_gids_from_group_sid(&group_sid, &gid_list,
                                                &num_gids);
-
-                       if (gid_list == NULL)
-                               goto done;
                }
 
                SAFE_FREE(info3);
@@ -1123,12 +1117,13 @@ enum winbindd_result winbindd_getgroups(struct winbindd_cli_state *state)
                for (i = 0; i < num_groups; i++) {
                        add_gids_from_group_sid(user_grpsids[i],
                                                &gid_list, &num_gids);
-
-                       if (gid_list == NULL)
-                               goto done;
                }
        }
 
+       /* We want at least one group... */
+       if (gid_list == NULL)
+               goto done;
+
        remove_duplicate_gids( &num_gids, gid_list );
 
        /* Send data back to client */