summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2006-12-05 21:50:20 +0000
committerJakub Jelinek <jakub@redhat.com>2006-12-05 21:50:20 +0000
commit7f65f3e3920a0dd6bb6a8774f46063371be4d029 (patch)
treefb89eb236014051f866ec94e56070f8120daf00c
parent2027fcad9546d0724d9c0994394f2bf69d119613 (diff)
Updated to fedora-glibc-20061205T2141cvs/fedora-glibc-2_5_90-11
-rw-r--r--ChangeLog42
-rw-r--r--fedora/branch.mk4
-rw-r--r--fedora/glibc.spec.in8
-rw-r--r--io/Makefile2
-rw-r--r--io/tst-ttyname_r.c42
-rw-r--r--localedata/ChangeLog6
-rw-r--r--localedata/locales/cs_CZ4
-rw-r--r--manual/string.texi9
-rw-r--r--nis/nis_subr.c2
-rw-r--r--nscd/nscd.init9
-rw-r--r--sysdeps/i386/i686/memcmp.S64
-rw-r--r--sysdeps/unix/sysv/linux/i386/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/sh/sys/io.h48
-rw-r--r--sysdeps/unix/sysv/linux/ttyname.c11
-rw-r--r--sysdeps/unix/sysv/linux/ttyname_r.c11
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/clone.S4
16 files changed, 158 insertions, 112 deletions
diff --git a/ChangeLog b/ChangeLog
index 2280c6db64..80fa9c5050 100644
--- 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
diff --git a/fedora/branch.mk b/fedora/branch.mk
index 944a694568..b61ceaaa5f 100644
--- a/fedora/branch.mk
+++ b/fedora/branch.mk
@@ -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
diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in
index cf2b095fdb..d1b7f560af 100644
--- a/fedora/glibc.spec.in
+++ b/fedora/glibc.spec.in
@@ -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
diff --git a/io/Makefile b/io/Makefile
index 4aadfbca01..18287b201a 100644
--- a/io/Makefile
+++ b/io/Makefile
@@ -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
index 0000000000..8e2f30c972
--- /dev/null
+++ b/io/tst-ttyname_r.c
@@ -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;
+}
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index 2d13f941dd..85b2d7948d 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -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.
diff --git a/localedata/locales/cs_CZ b/localedata/locales/cs_CZ
index 9667700a93..5d279187eb 100644
--- a/localedata/locales/cs_CZ
+++ b/localedata/locales/cs_CZ
@@ -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>"
diff --git a/manual/string.texi b/manual/string.texi
index f582bad96d..2fe60395eb 100644
--- a/manual/string.texi
+++ b/manual/string.texi
@@ -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
@@ -1966,11 +1966,6 @@ 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
-separately. The function is not locale-dependent.
@end deftypefun
@comment wchar.h
diff --git a/nis/nis_subr.c b/nis/nis_subr.c
index 258479c857..c68189e541 100644
--- a/nis/nis_subr.c
+++ b/nis/nis_subr.c
@@ -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
diff --git a/nscd/nscd.init b/nscd/nscd.init
index 1fba72f5c3..dcf92df3da 100644
--- a/nscd/nscd.init
+++ b/nscd/nscd.init
@@ -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
diff --git a/sysdeps/i386/i686/memcmp.S b/sysdeps/i386/i686/memcmp.S
index 113760d846..4fa6adea98 100644
--- a/sysdeps/i386/i686/memcmp.S
+++ b/sysdeps/i386/i686/memcmp.S
@@ -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
diff --git a/sysdeps/unix/sysv/linux/i386/clone.S b/sysdeps/unix/sysv/linux/i386/clone.S
index 54524ec120..f73a4b5195 100644
--- a/sysdeps/unix/sysv/linux/i386/clone.S
+++ b/sysdeps/unix/sysv/linux/i386/clone.S
@@ -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
index 6fdc44ff89..0000000000
--- a/sysdeps/unix/sysv/linux/sh/sys/io.h
+++ /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 */
diff --git a/sysdeps/unix/sysv/linux/ttyname.c b/sysdeps/unix/sysv/linux/ttyname.c
index aed0fd8e0a..1b79787515 100644
--- a/sysdeps/unix/sysv/linux/ttyname.c
+++ b/sysdeps/unix/sysv/linux/ttyname.c
@@ -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';
diff --git a/sysdeps/unix/sysv/linux/ttyname_r.c b/sysdeps/unix/sysv/linux/ttyname_r.c
index bd415f167b..cef8624dc6 100644
--- a/sysdeps/unix/sysv/linux/ttyname_r.c
+++ b/sysdeps/unix/sysv/linux/ttyname_r.c
@@ -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';
diff --git a/sysdeps/unix/sysv/linux/x86_64/clone.S b/sysdeps/unix/sysv/linux/x86_64/clone.S
index 8a12b09035..db42f209c9 100644
--- a/sysdeps/unix/sysv/linux/x86_64/clone.S
+++ b/sysdeps/unix/sysv/linux/x86_64/clone.S
@@ -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))