diff --git a/group_chooser.cgi b/group_chooser.cgi index 28c9a097d..ba9d30d47 100755 --- a/group_chooser.cgi +++ b/group_chooser.cgi @@ -191,7 +191,9 @@ if ($access{'gedit_mode'} == 2 || $access{'gedit_mode'} == 3) { map { $gcan{$_}++ } split(/\s+/, $access{'gedit'}); } setgrent(); +local %doneg; while(@ginfo = getgrent()) { + next if ($doneg{$ginfo[0]}++); @mems = &unique( split(/ /, $ginfo[3]), @{$members{$ginfo[2]}} ); if (@mems > 3) { @mems = (@mems[0..1], "..."); } $ginfo[3] = join(' ', @mems); diff --git a/user_chooser.cgi b/user_chooser.cgi index bd3c5d354..78fdada46 100755 --- a/user_chooser.cgi +++ b/user_chooser.cgi @@ -182,7 +182,9 @@ if ($access{'uedit_mode'} == 2 || $access{'uedit_mode'} == 3) { map { $ucan{$_}++ } split(/\s+/, $access{'uedit'}); } setpwent(); +local %doneu; while(@uinfo = getpwent()) { + next if ($doneu{$uinfo[0]}++); if ($access{'uedit_mode'} == 5 && $access{'uedit'} !~ /^\d+$/) { # Get group for matching by group name @ginfo = getgrgid($uinfo[3]);