]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Updated to fedora-glibc-20061205T2141 cvs/fedora-glibc-2_5_90-11
authorJakub Jelinek <jakub@redhat.com>
Tue, 5 Dec 2006 21:50:20 +0000 (21:50 +0000)
committerJakub Jelinek <jakub@redhat.com>
Tue, 5 Dec 2006 21:50:20 +0000 (21:50 +0000)
16 files changed:
ChangeLog
fedora/branch.mk
fedora/glibc.spec.in
io/Makefile
io/tst-ttyname_r.c [new file with mode: 0644]
localedata/ChangeLog
localedata/locales/cs_CZ
manual/string.texi
nis/nis_subr.c
nscd/nscd.init
sysdeps/i386/i686/memcmp.S
sysdeps/unix/sysv/linux/i386/clone.S
sysdeps/unix/sysv/linux/sh/sys/io.h [deleted file]
sysdeps/unix/sysv/linux/ttyname.c
sysdeps/unix/sysv/linux/ttyname_r.c
sysdeps/unix/sysv/linux/x86_64/clone.S

index 2280c6db640e1f96fd1915d5d2f35843d1cc66bb..80fa9c50507276d255737b88c190498f2282b905 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,45 @@
+2006-12-05  Jakub Jelinek  <jakub@redhat.com>
+
+       * nis/nis_subr.c (nis_getnames): Revert last change.
+
+2006-12-04  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/unix/sysv/linux/ttyname.c: Include termios.h.
+       (ttyname): Use tcgetattr instead of isatty, don't set errno to ENOTTY.
+       * sysdeps/unix/sysv/linux/ttyname_r.c: Include termios.h.
+       (__ttyname_r): Use tcgetattr instead of isatty, don't set errno to
+       ENOTTY.
+       * io/Makefile: Add rules to build and run tst-ttyname_r test.
+       * io/tst-ttyname_r.c: New test.
+
+2006-12-03  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+       * sysdeps/unix/sysv/linux/sh/sys/io.h: Removed.
+
+2006-11-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/i386/i686/memcmp.S: Use jump table as the base of
+       jump table entries.
+
+2006-11-30  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * sysdeps/unix/sysv/linux/i386/clone.S: Provide CFI for the outermost
+       `clone' function to ensure proper unwinding stop of gdb.
+       * sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
+
+2006-12-01  Ulrich Drepper  <drepper@redhat.com>
+
+       * nscd/nscd.init: Remove obsolete and commented-out -S option
+       handling.
+
+2006-11-23  Jakub Jelinek  <jakub@redhat.com>
+
+       [BZ #3514]
+       * manual/string.texi (strncmp): Fix pastos from wcscmp description.
+
+       [BZ #3515]
+       * manual/string.texi (strtok): Remove duplicate paragraph.
+
 2006-12-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        * sysdeps/unix/sysv/linux/x86_64/sigaction.c: Fix compatibility with
index 944a694568e09c492c44d5f9ea8ab32e7e5a8c7d..b61ceaaa5ff3ab5eea69eeeb2cca7e4385a9b1c4 100644 (file)
@@ -3,5 +3,5 @@ glibc-branch := fedora
 glibc-base := HEAD
 DIST_BRANCH := devel
 COLLECTION := dist-fc7
-fedora-sync-date := 2006-12-01 08:21 UTC
-fedora-sync-tag := fedora-glibc-20061201T0821
+fedora-sync-date := 2006-12-05 21:41 UTC
+fedora-sync-tag := fedora-glibc-20061205T2141
index cf2b095fdb868c14c50ea4b8a877c6f2d097ce2b..d1b7f560af9040e2ea66959951b2b3fc0057640f 100644 (file)
@@ -1,4 +1,4 @@
-%define glibcrelease 10
+%define glibcrelease 11
 %define auxarches i586 i686 athlon sparcv9 alphaev6
 %define xenarches i686 athlon
 %ifarch %{xenarches}
@@ -1544,6 +1544,12 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Tue Dec  5 2006 Jakub Jelinek <jakub@redhat.com> 2.5.90-11
+- allow suid apps to setenv NIS_PATH and incluence through that
+  nis_list and nis_lookup (#209155)
+- fix ttyname and ttyname_r with invalid file descriptor (#218276)
+- cs_CZ LC_TIME fixes (#218438)
+
 * Fri Dec  1 2006 Jakub Jelinek <jakub@redhat.com> 2.5.90-10
 - fix x86-64 restore_rt unwind info
 
index 4aadfbca01143ef0ba35a6c441442b1065aedeca..18287b201ac7d99a13769d0335ea25459006ed27 100644 (file)
@@ -66,7 +66,7 @@ tests         := test-utime test-stat test-stat2 test-lfs tst-getcwd \
                   tst-openat tst-unlinkat tst-fstatat tst-futimesat \
                   tst-renameat tst-fchownat tst-fchmodat tst-faccessat \
                   tst-symlinkat tst-linkat tst-readlinkat tst-mkdirat \
-                  tst-mknodat tst-mkfifoat
+                  tst-mknodat tst-mkfifoat tst-ttyname_r
 
 distribute     := ftwtest-sh
 
diff --git a/io/tst-ttyname_r.c b/io/tst-ttyname_r.c
new file mode 100644 (file)
index 0000000..8e2f30c
--- /dev/null
@@ -0,0 +1,42 @@
+#include <errno.h>
+#include <error.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <unistd.h>
+
+static void do_prepare (void);
+#define PREPARE(argc, argv) do_prepare ()
+static int do_test (void);
+#define TEST_FUNCTION do_test ()
+#include <test-skeleton.c>
+
+static int temp_fd;
+
+static void
+do_prepare (void)
+{
+  char *temp_file;
+  temp_fd = create_temp_file ("tst-ttyname_r.", &temp_file);
+  if (temp_fd == -1)
+    error (1, errno, "cannot create temporary file");
+}
+
+static int
+do_test (void)
+{
+  int ret = 0;
+  char buf[sysconf (_SC_TTY_NAME_MAX) + 1];
+  int res = ttyname_r (-1, buf, sizeof (buf));
+  if (res != EBADF)
+    {
+      printf ("1st ttyname_r returned with res %d\n", res);
+      ret++;
+    }
+  res = ttyname_r (temp_fd, buf, sizeof (buf));
+  if (res != ENOTTY)
+    {
+      printf ("2nd ttyname_r returned with res %d\n", res);
+      ret++;
+    }
+  return ret;
+}
index 2d13f941dd55dc3091efb561f39888bd9e9c2c2a..85b2d7948db976c967375a0be7fad946d236ac6b 100644 (file)
@@ -1,3 +1,9 @@
+2006-12-05  Jakub Jelinek  <jakub@redhat.com>
+
+       * locales/cs_CZ (LC_TIME): Change d_fmt to %e.%m.%Y from %-d.%-m.%Y.
+       Change d_t_fmt to %a %-d. %B %Y, %H:%M:%S %Z from
+       %a %e. %B %Y, %H:%M:%S %Z.
+
 2006-11-02  Ulrich Drepper  <drepper@redhat.com>
 
        * locales/mai_IN: New file.
index 9667700a936143d518119a30661643f6328d232a..5d279187eb5e51f89595cbbf94a233ea87051c52 100644 (file)
@@ -2440,9 +2440,9 @@ abmon             "<U006C><U0065><U0064>";/
 
 week           7;19971201;4
 
-d_t_fmt                "<U0025><U0061><U00A0><U0025><U0065><U002E><U00A0><U0025><U0042><U00A0><U0025><U0059><U002C><U00A0><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U00A0><U0025><U005A>"
+d_t_fmt                "<U0025><U0061><U00A0><U0025><U002D><U0064><U002E><U00A0><U0025><U0042><U00A0><U0025><U0059><U002C><U00A0><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U00A0><U0025><U005A>"
 
-d_fmt          "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
+d_fmt          "<U0025><U002D><U0064><U002E><U0025><U002D><U006D><U002E><U0025><U0059>"
 
 t_fmt          "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
 
index f582bad96d54ea7051584e8ee6ea6beacbb7db90..2fe60395ebd2607b6bed0cb130ac51fc34e92412 100644 (file)
@@ -1187,8 +1187,8 @@ regards these characters as parts of the alphabet they do match.
 @comment ISO
 @deftypefun int strncmp (const char *@var{s1}, const char *@var{s2}, size_t @var{size})
 This function is the similar to @code{strcmp}, except that no more than
-@var{size} wide characters are compared.  In other words, if the two
-strings are the same in their first @var{size} wide characters, the
+@var{size} characters are compared.  In other words, if the two
+strings are the same in their first @var{size} characters, the
 return value is zero.
 @end deftypefun
 
@@ -1962,11 +1962,6 @@ If the end of the string @var{newstring} is reached, or if the remainder of
 string consists only of delimiter characters, @code{strtok} returns
 a null pointer.
 
-Note that ``character'' is here used in the sense of byte.  In a string
-using a multibyte character encoding (abstract) character consisting of
-more than one byte are not treated as an entity.  Each byte is treated
-separately.  The function is not locale-dependent.
-
 Note that ``character'' is here used in the sense of byte.  In a string
 using a multibyte character encoding (abstract) character consisting of
 more than one byte are not treated as an entity.  Each byte is treated
index 258479c8570e2234e1e5ce453db070c4b3faa3fd..c68189e541b0c9a23035b69cb6fa870202fcc76b 100644 (file)
@@ -178,7 +178,7 @@ nis_getnames (const_nis_name name)
     }
 
   /* Get the search path, where we have to search "name" */
-  path = __secure_getenv ("NIS_PATH");
+  path = getenv ("NIS_PATH");
   if (path == NULL)
     path = strdupa ("$");
   else
index 1fba72f5c32d24073ac04a4131642bc7d81d2b21..dcf92df3da9ba2331baa6fb053af22fc622da6f3 100644 (file)
@@ -38,15 +38,8 @@ prog=nscd
 start () {
     [ -d /var/run/nscd ] || mkdir /var/run/nscd
     [ -d /var/db/nscd ] || mkdir /var/db/nscd
-    secure=""
-#   for table in passwd group hosts
-#   do
-#      if egrep -q '^'$table':.*nisplus' /etc/nsswitch.conf; then
-#          /usr/lib/nscd_nischeck $table || secure="$secure -S $table,yes"
-#      fi
-#   done
     echo -n $"Starting $prog: "
-    daemon /usr/sbin/nscd $secure $NSCD_OPTIONS
+    daemon /usr/sbin/nscd $NSCD_OPTIONS
     RETVAL=$?
     echo
     [ $RETVAL -eq 0 ] && touch /var/lock/subsys/nscd
index 113760d8463b29442c43dc107bda25c058664047..4fa6adea987e04648eb43c2f9707098473c02579 100644 (file)
@@ -380,38 +380,38 @@ END (BP_SYM (memcmp))
        .section        .rodata
        ALIGN (2)
 L(table_32bytes) :
-       .long   L(0bytes) - . + 0x0
-       .long   L(1bytes) - . + 0x4
-       .long   L(2bytes) - . + 0x8
-       .long   L(3bytes) - . + 0xc
-       .long   L(4bytes) - . + 0x10
-       .long   L(5bytes) - . + 0x14
-       .long   L(6bytes) - . + 0x18
-       .long   L(7bytes) - . + 0x1c
-       .long   L(8bytes) - . + 0x20
-       .long   L(9bytes) - . + 0x24
-       .long   L(10bytes) - . + 0x28
-       .long   L(11bytes) - . + 0x2c
-       .long   L(12bytes) - . + 0x30
-       .long   L(13bytes) - . + 0x34
-       .long   L(14bytes) - . + 0x38
-       .long   L(15bytes) - . + 0x3c
-       .long   L(16bytes) - . + 0x40
-       .long   L(17bytes) - . + 0x44
-       .long   L(18bytes) - . + 0x48
-       .long   L(19bytes) - . + 0x4c
-       .long   L(20bytes) - . + 0x50
-       .long   L(21bytes) - . + 0x54
-       .long   L(22bytes) - . + 0x58
-       .long   L(23bytes) - . + 0x5c
-       .long   L(24bytes) - . + 0x60
-       .long   L(25bytes) - . + 0x64
-       .long   L(26bytes) - . + 0x68
-       .long   L(27bytes) - . + 0x6c
-       .long   L(28bytes) - . + 0x70
-       .long   L(29bytes) - . + 0x74
-       .long   L(30bytes) - . + 0x78
-       .long   L(31bytes) - . + 0x7c
+       .long   L(0bytes) - L(table_32bytes)
+       .long   L(1bytes) - L(table_32bytes)
+       .long   L(2bytes) - L(table_32bytes)
+       .long   L(3bytes) - L(table_32bytes)
+       .long   L(4bytes) - L(table_32bytes)
+       .long   L(5bytes) - L(table_32bytes)
+       .long   L(6bytes) - L(table_32bytes)
+       .long   L(7bytes) - L(table_32bytes)
+       .long   L(8bytes) - L(table_32bytes)
+       .long   L(9bytes) - L(table_32bytes)
+       .long   L(10bytes) - L(table_32bytes)
+       .long   L(11bytes) - L(table_32bytes)
+       .long   L(12bytes) - L(table_32bytes)
+       .long   L(13bytes) - L(table_32bytes)
+       .long   L(14bytes) - L(table_32bytes)
+       .long   L(15bytes) - L(table_32bytes)
+       .long   L(16bytes) - L(table_32bytes)
+       .long   L(17bytes) - L(table_32bytes)
+       .long   L(18bytes) - L(table_32bytes)
+       .long   L(19bytes) - L(table_32bytes)
+       .long   L(20bytes) - L(table_32bytes)
+       .long   L(21bytes) - L(table_32bytes)
+       .long   L(22bytes) - L(table_32bytes)
+       .long   L(23bytes) - L(table_32bytes)
+       .long   L(24bytes) - L(table_32bytes)
+       .long   L(25bytes) - L(table_32bytes)
+       .long   L(26bytes) - L(table_32bytes)
+       .long   L(27bytes) - L(table_32bytes)
+       .long   L(28bytes) - L(table_32bytes)
+       .long   L(29bytes) - L(table_32bytes)
+       .long   L(30bytes) - L(table_32bytes)
+       .long   L(31bytes) - L(table_32bytes)
 
 
 #undef bcmp
index 54524ec120c9c33cb39a22ed960e6466074d5bea..f73a4b5195720cd319c0e9c6679a268868b1ee35 100644 (file)
@@ -120,6 +120,9 @@ L(pseudo_end):
        ret
 
 L(thread_start):
+       cfi_startproc;
+       /* Clearing frame pointer is insufficient, use CFI.  */
+       cfi_undefined (eip);
        /* Note: %esi is zero.  */
        movl    %esi,%ebp       /* terminate the stack frame */
 #ifdef RESET_PID
@@ -152,6 +155,7 @@ L(nomoregetpid):
        jmp     L(haspid)
        .previous
 #endif
+       cfi_endproc;
 
        cfi_startproc
 PSEUDO_END (BP_SYM (__clone))
diff --git a/sysdeps/unix/sysv/linux/sh/sys/io.h b/sysdeps/unix/sysv/linux/sh/sys/io.h
deleted file mode 100644 (file)
index 6fdc44f..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (C) 1996, 1998, 1999, 2000 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
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef        _SYS_IO_H
-
-#define        _SYS_IO_H       1
-#include <features.h>
-
-__BEGIN_DECLS
-
-/* If TURN_ON is TRUE, request for permission to do direct i/o on the
-   port numbers in the range [FROM,FROM+NUM-1].  Otherwise, turn I/O
-   permission off for that range.  This call requires root privileges.  */
-extern int ioperm (unsigned long int __from, unsigned long int __num,
-                  int __turn_on) __THROW;
-
-/* Set the I/O privilege level to LEVEL.  If LEVEL is nonzero,
-   permission to access any I/O port is granted.  This call requires
-   root privileges. */
-extern int iopl (int __level) __THROW;
-
-/* The functions that actually perform reads and writes.  */
-extern unsigned char inb (unsigned long int port) __THROW;
-extern unsigned short int inw (unsigned long int port) __THROW;
-extern unsigned long int inl (unsigned long int port) __THROW;
-
-extern void outb (unsigned char value, unsigned long int port) __THROW;
-extern void outw (unsigned short value, unsigned long int port) __THROW;
-extern void outl (unsigned long value, unsigned long int port) __THROW;
-
-__END_DECLS
-
-#endif /* _SYS_IO_H */
index aed0fd8e0a76e53bb9c01caea427c4a063d1b846..1b797875155e1474822af604245f2e02e2f5b319 100644 (file)
@@ -22,6 +22,7 @@
 #include <dirent.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <termios.h>
 #include <unistd.h>
 #include <string.h>
 #include <stdlib.h>
@@ -118,12 +119,12 @@ ttyname (int fd)
   int dostat = 0;
   char *name;
   int save = errno;
+  struct termios term;
 
-  if (__builtin_expect (!__isatty (fd), 0))
-    {
-      __set_errno (ENOTTY);
-      return NULL;
-    }
+  /* isatty check, tcgetattr is used because it sets the correct
+     errno (EBADF resp. ENOTTY) on error.  */
+  if (__builtin_expect (__tcgetattr (fd, &term) < 0, 0))
+    return NULL;
 
   /* We try using the /proc filesystem.  */
   *_fitoa_word (fd, __stpcpy (procname, "/proc/self/fd/"), 10, 0) = '\0';
index bd415f167b415f741b74feb3af016627ea97fe43..cef8624dc6920ef6a7babecaf94165591154e2ad 100644 (file)
@@ -22,6 +22,7 @@
 #include <dirent.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <termios.h>
 #include <unistd.h>
 #include <string.h>
 #include <stdlib.h>
@@ -115,11 +116,11 @@ __ttyname_r (int fd, char *buf, size_t buflen)
       return ERANGE;
     }
 
-  if (__builtin_expect (!__isatty (fd), 0))
-    {
-      __set_errno (ENOTTY);
-      return ENOTTY;
-    }
+  /* isatty check, tcgetattr is used because it sets the correct
+     errno (EBADF resp. ENOTTY) on error.  */
+  struct termios term;
+  if (__builtin_expect (__tcgetattr (fd, &term) < 0, 0))
+    return errno;
 
   /* We try using the /proc filesystem.  */
   *_fitoa_word (fd, __stpcpy (procname, "/proc/self/fd/"), 10, 0) = '\0';
index 8a12b09035eeece1f9bd41cdb5077216be92f326..db42f209c9fe4e827a816b753adf5b57fdf8849a 100644 (file)
@@ -89,6 +89,9 @@ L(pseudo_end):
        ret
 
 L(thread_start):
+       cfi_startproc;
+       /* Clearing frame pointer is insufficient, use CFI.  */
+       cfi_undefined (rip);
        /* Clear the frame pointer.  The ABI suggests this be done, to mark
           the outermost frame obviously.  */
        xorl    %ebp, %ebp
@@ -113,6 +116,7 @@ L(thread_start):
        /* Call exit with return value from function call. */
        movq    %rax, %rdi
        call    HIDDEN_JUMPTARGET (_exit)
+       cfi_endproc;
 
        cfi_startproc;
 PSEUDO_END (BP_SYM (__clone))