Bug#616171: libc6: Multiple calls to getgrouplist give different answers with/without nscd running
Package: libc6
Version: 2.11.2-10
Severity: important
When running NIS, the following simple code gives different answers with nscd
running versus nscd not running:
#include <grp.h>
#include <stdio.h>
#define NGROUPS 100
main( int argc, char **argv )
{
int i=NGROUPS;
gid_t groups[NGROUPS];
getgrouplist(argv[1], 1062, groups, &i);
printf ("%d\n", i);
getgrouplist(argv[1], 1062, groups, &i);
printf ("%d\n", i);
}
For example with nscd running:
t harry
19
19
Without nscd running:
t harry
19
4
The first call always returns the groups assigned to a user in /etc/groups and
in NIS. This is alway true of the second call with nscd running.
When nscd is not running, the second call to getgrouplist only returns the
groups assigned to a user in /etc/groups and the gid passed into getgrouplist.
This is caused "samba" to not assign the correct groups to a user when nscd was
not running on the samba server.
The same code works correctly when run in "lenny" whether nscd is running or
not.
-- System Information:
Debian Release: 6.0
APT prefers squeeze-updates
APT policy: (500, 'squeeze-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.37.1 (SMP w/2 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/bash
Versions of packages libc6 depends on:
ii libc-bin 2.11.2-10 Embedded GNU C Library: Binaries
ii libgcc1 1:4.4.5-8 GCC support library
libc6 recommends no packages.
Versions of packages libc6 suggests:
ii debconf [debconf-2.0] 1.5.36.1 Debian configuration management sy
ii glibc-doc 2.11.2-10 Embedded GNU C Library: Documentat
ii locales 2.11.2-10 Embedded GNU C Library: National L
ii locales-all [locales] 2.11.2-10 Embedded GNU C Library: Precompile
-- debconf information:
glibc/upgrade: true
glibc/disable-screensaver:
glibc/restart-failed:
* glibc/restart-services: spamassassin ssh sendmail openbsd-inetd cron atd autofs apache2
Reply to: