[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: