From: Ulrich Drepper Date: Sun, 25 Mar 2001 08:22:02 +0000 (+0000) Subject: Update. X-Git-Tag: cvs/glibc-2_2_3~218 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5e3114974a1982e53f368a09387d0dad1aad1ec1;p=platform%2Fupstream%2Fglibc.git Update. 2001-03-25 Ulrich Drepper * sysdeps/unix/sysv/linux/i386/getgroups.c (__getgroups): getgroups32 syscall checks for negative n so don't test here as well. --- diff --git a/ChangeLog b/ChangeLog index f0b51d6..bbaa5cf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2001-03-25 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/getgroups.c (__getgroups): getgroups32 + syscall checks for negative n so don't test here as well. + 2001-03-23 Jes Sorensen * sysdeps/unix/sysv/linux/ia64/sysdep.h (ENTRY): Moved to ... diff --git a/sysdeps/unix/sysv/linux/i386/getgroups.c b/sysdeps/unix/sysv/linux/i386/getgroups.c index 2efe341..45d8fd0 100644 --- a/sysdeps/unix/sysv/linux/i386/getgroups.c +++ b/sysdeps/unix/sysv/linux/i386/getgroups.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1998, 2000, 2001 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -45,16 +45,16 @@ extern int __libc_missing_32bit_uids; int __getgroups (int n, gid_t *groups) { - if (n < 0) +#if __ASSUME_32BITUIDS > 0 + return INLINE_SYSCALL (getgroups32, 2, n, CHECK_N (groups, n)); +#else + if (__builtin_expect (n, 1) < 0) { __set_errno (EINVAL); return -1; } else { -#if __ASSUME_32BITUIDS > 0 - return INLINE_SYSCALL (getgroups32, 2, n, CHECK_N (groups, n)); -#else int i, ngids; __kernel_gid_t kernel_groups[n = MIN (n, __sysconf (_SC_NGROUPS_MAX))]; # ifdef __NR_getgroups32 @@ -77,8 +77,8 @@ __getgroups (int n, gid_t *groups) for (i = 0; i < ngids; i++) (__ptrvalue (groups))[i] = kernel_groups[i]; return ngids; -#endif } +#endif } weak_alias (__getgroups, getgroups)