diff options
author | Joseph Myers <joseph@codesourcery.com> | 2015-06-17 20:21:19 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2015-06-17 20:21:19 +0000 |
commit | abccad04b4172d552dbdae948c0e567ba266ad76 (patch) | |
tree | 2de82b0b360a2a1003e1fe0e92c00fef92e8d79f /include | |
parent | 0595c98494c25f8eaa1a3298e8fa032ad5e4405e (diff) | |
download | glibc-abccad04b4172d552dbdae948c0e567ba266ad76.zip glibc-abccad04b4172d552dbdae948c0e567ba266ad76.tar.gz glibc-abccad04b4172d552dbdae948c0e567ba266ad76.tar.bz2 |
Fix ttyslot namespace (bug 18547).
ttyslot (XPG4) calls the non-XPG4 functions endttyent, getttyent and
setttyent, which in turn bring in references to fgets_unlocked and
getttynam. This patch fixes this by making these functions into weak
aliases and calling the __* names as needed.
Tested for x86_64 and x86 (testsuite, and that disassembly of
installed stripped shared libraries is unchanged by the patch).
[BZ #18547]
* misc/getttyent.c (getttynam): Rename to __getttynam and define
as weak alias of __getttynam. Use prototype function definition.
Call __setttyent, __getttyent and __endttyent instead of
setttyent, getttyent and endttyent.
(getttyent): Rename to __getttyent and define as weak alias of
__getttyent. Call __setttyent instead of setttyent. Call
__fgets_unlocked instead of fgets_unlocked.
(setttyent): Rename to __setttyent and define as weak alias of
__setttyent.
(endttyent): Rename to __endttyent and define as weak alias of
__endttyent.
* include/ttyent.h (__getttyent): Declare. Use libc_hidden_proto.
(__setttyent): Likewise.
(__endttyent): Likewise.
(getttyent): Don't use libc_hidden_proto.
(setttyent): Likewise.
(endttyent): Likewise.
* misc/ttyslot.c (ttyslot): Call __setttyent, __getttyent and
__endttyent instead of setttyent, getttyent and endttyent.
* conform/Makefile (test-xfail-XPG4/unistd.h/linknamespace):
Remove variable.
Diffstat (limited to 'include')
-rw-r--r-- | include/ttyent.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/include/ttyent.h b/include/ttyent.h index e510df8..81e5211 100644 --- a/include/ttyent.h +++ b/include/ttyent.h @@ -1,8 +1,11 @@ #ifndef _TTYENT_H # include <misc/ttyent.h> -libc_hidden_proto (getttyent) -libc_hidden_proto (setttyent) -libc_hidden_proto (endttyent) +extern __typeof (getttyent) __getttyent __THROW; +libc_hidden_proto (__getttyent) +extern __typeof (setttyent) __setttyent __THROW; +libc_hidden_proto (__setttyent) +extern __typeof (endttyent) __endttyent __THROW; +libc_hidden_proto (__endttyent) #endif |