diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | fedora/branch.mk | 4 | ||||
-rw-r--r-- | fedora/glibc.spec.in | 7 | ||||
-rw-r--r-- | nptl/ChangeLog | 3 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S | 2 | ||||
-rw-r--r-- | nscd/nscd_initgroups.c | 29 | ||||
-rw-r--r-- | posix/bug-glob1.c | 12 |
7 files changed, 41 insertions, 23 deletions
@@ -1,3 +1,10 @@ +2004-10-01 Ulrich Drepper <drepper@redhat.com> + + * nscd/nscd_initgroups.c (__nscd_getgrouplist): Always add the + group the caller provided unless there is a real problem. + + * posix/bug-glob1.c (prepare): Fix creation of symlink. + 2004-09-30 Ulrich Drepper <drepper@redhat.com> * posix/Makefile: Add rules to build and run bug-glob1. diff --git a/fedora/branch.mk b/fedora/branch.mk index 763b4cf..748fba0 100644 --- a/fedora/branch.mk +++ b/fedora/branch.mk @@ -1,5 +1,5 @@ # This file is updated automatically by Makefile. glibc-branch := fedora glibc-base := HEAD -fedora-sync-date := 2004-10-01 11:34 UTC -fedora-sync-tag := fedora-glibc-20041001T1134 +fedora-sync-date := 2004-10-01 21:34 UTC +fedora-sync-tag := fedora-glibc-20041001T2134 diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in index c2c4afe..7830e73 100644 --- a/fedora/glibc.spec.in +++ b/fedora/glibc.spec.in @@ -1,4 +1,4 @@ -%define glibcrelease 62 +%define glibcrelease 63 %define auxarches i586 i686 athlon sparcv9 alphaev6 %define prelinkarches noarch %define nptlarches i386 i686 athlon x86_64 ia64 s390 s390x sparcv9 ppc ppc64 @@ -1241,6 +1241,11 @@ rm -f *.filelist* %changelog * Fri Oct 1 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-62 - update from CVS + - fix __nscd_getgrouplist + - fix a typo in x86_64 pthread_mutex_timedwait fix + +* Fri Oct 1 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-62 +- update from CVS - fix NPTL pthread_mutex_timedwait on i386/x86_64 (BZ #417) * Thu Sep 30 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-61 diff --git a/nptl/ChangeLog b/nptl/ChangeLog index da7d842..90c7d5f 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,8 @@ 2004-10-01 Ulrich Drepper <drepper@redhat.com> + * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S + (__lll_mutex_timedlock_wait): Address futex correctly. + * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S (__lll_mutex_timedlock_wait): I woken but cannot get the lock, make sure 2 is stored in the futex and we looked at the old value. diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S index 6827804..d5c9345 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S @@ -152,7 +152,7 @@ __lll_mutex_timedlock_wait: /* Make sure the current holder knows we are going to sleep. */ movl %edx, %eax - xchgl %eax, (%ebx) + xchgl %eax, (%rdi) testl %eax, %eax jz 6b jmp 1b diff --git a/nscd/nscd_initgroups.c b/nscd/nscd_initgroups.c index ea32ab6..d6cb000 100644 --- a/nscd/nscd_initgroups.c +++ b/nscd/nscd_initgroups.c @@ -95,6 +95,7 @@ __nscd_getgrouplist (const char *user, gid_t group, long int *size, doesn't use memcpy but instead copies each array element one by one. */ assert (sizeof (int32_t) == sizeof (gid_t)); + assert (initgr_resp->ngrps > 0); /* Make sure we have enough room. We always count GROUP in even though we might not end up adding it. */ @@ -125,25 +126,21 @@ __nscd_getgrouplist (const char *user, gid_t group, long int *size, retval = initgr_resp->ngrps; memcpy (*groupsp, respdata, retval * sizeof (gid_t)); } - - /* Check whether GROUP is part of the mix. If not, add it. */ - if (retval >= 0) - { - int cnt; - for (cnt = 0; cnt < retval; ++cnt) - if ((*groupsp)[cnt] == group) - break; - - if (cnt == retval) - (*groupsp)[retval++] = group; - } } else + /* No group found yet. */ + retval = 0; + + /* Check whether GROUP is part of the mix. If not, add it. */ + if (retval >= 0) { - /* The `errno' to some value != ERANGE. */ - __set_errno (ENOENT); - /* Even though we have not found anything, the result is zero. */ - retval = 0; + int cnt; + for (cnt = 0; cnt < retval; ++cnt) + if ((*groupsp)[cnt] == group) + break; + + if (cnt == retval) + (*groupsp)[retval++] = group; } if (sock != -1) diff --git a/posix/bug-glob1.c b/posix/bug-glob1.c index 4f7e981..05c2da7 100644 --- a/posix/bug-glob1.c +++ b/posix/bug-glob1.c @@ -26,15 +26,21 @@ prepare (int argc, char *argv[]) size_t len = strlen (argv[1]); static const char ext[] = "globXXXXXX"; - fname = malloc (len + 1 + sizeof (ext)); + fname = malloc (len + sizeof (ext)); if (fname == NULL) error (EXIT_FAILURE, errno, "cannot create temp file"); - strcpy (stpcpy (stpcpy (fname, argv[1]), "/"), ext); + again: + strcpy (stpcpy (fname, argv[1]), ext); fname = mktemp (fname); if (fname == NULL || *fname == '\0') error (EXIT_FAILURE, errno, "cannot create temp file name"); if (symlink ("bug-glob1-does-not-exist", fname) != 0) - error (EXIT_FAILURE, errno, "cannot create symlink"); + { + if (errno == EEXIST) + goto again; + + error (EXIT_FAILURE, errno, "cannot create symlink"); + } add_temp_file (fname); } |