aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-06-20 20:39:19 -0700
committerUlrich Drepper <drepper@redhat.com>2009-06-20 20:39:19 -0700
commitccab6d8f73a17346862b681250de6f73a6940144 (patch)
tree34edec7e22c47acc098431932dab2c6574beea99 /ChangeLog
parentf6887a0d9a55f5c80c567d9cb153c1c6582410f9 (diff)
downloadglibc-ccab6d8f73a17346862b681250de6f73a6940144.tar
glibc-ccab6d8f73a17346862b681250de6f73a6940144.tar.gz
glibc-ccab6d8f73a17346862b681250de6f73a6940144.tar.bz2
glibc-ccab6d8f73a17346862b681250de6f73a6940144.zip
Fix broken up NIS groups for compat NSS module.
The check for the inclusion of a group in the result gave up too early in case of broken-up NIS groups. We now fall back automatically to the slow mode of using getgrent_r. As an optimization, if there is not blacklist we need not perform the check in the first place and therefore can just accept the results of the initgroups_dyn callback.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog21
1 files changed, 21 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 8dac4e0eee..5ae6e3b905 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,24 @@
+2009-06-20 Ulrich Drepper <drepper@redhat.com>
+
+ [BZ #10085]
+ * nis/nss_compat/compat-initgroups.c (nss_setgrent): New variable.
+ (nss_endgrent): New variable.
+ (struct ent_t): Add need_endgrent and skip_initgroups_dyn
+ fields. Change type of files to bool and adjust all users.
+ (init_nss_interface): Initialize nss_setgrent and nss_endgrent.
+ (internal_endgrent): Call nss_endgrent if necessary.
+ (add_group): New function. Broken out of...
+ (check_and_add_group): ...here.
+ (getgrent_next_nss): Remove test that any callback is available.
+ Use skip_initgroups_dyn to determine whether to use initgroups_dyn
+ callback. If there is no blacklist we can trust the results returned
+ by the initgroups_dyn callback. In case there is a callback and we
+ find a group entry for the group ID but it doesn't contain the
+ correct member, switch to the slow mode and use getgrent_r.
+ (internal_getgrent_r): When we see a +: entry, determine whether
+ there is any callback and which we can use the initgroups_dyn
+ callback.
+
2009-06-18 Ulrich Drepper <drepper@redhat.com>
* malloc/malloc.c (_int_malloc): Add some consistency checks.