mirror of
https://sourceware.org/git/glibc.git
synced 2025-12-18 17:24:29 +03:00
Fix getlogin_r namespace (bug 18527).
Various functions in XPG4 bring in references to getlogin_r, which is not in XPG4; this is also a bug for some older POSIX versions which aren't yet covered by the linknamespace tests. This patch fixes this by making getlogin_r into a weak alias for __getlogin_r and using __getlogin_r as needed. Tested for x86_64 and x86 (testsuite, and that disassembly of installed stripped shared libraries is unchanged by the patch). [BZ #18527] * login/getlogin_r.c (getlogin_r): Rename to __getlogin_r and define as weak alias of __getlogin_r. Use libc_hidden_weak. * sysdeps/mach/hurd/getlogin_r.c (getlogin_r): Likewise. * sysdeps/unix/getlogin_r.c (getlogin_r): Likewise. * sysdeps/unix/sysv/linux/getlogin_r.c (getlogin_r): Likewise. * include/unistd.h (__getlogin_r): Declare. Use libc_hidden_proto. * posix/glob.c (glob): Call __getlogin_r instead of getlogin_r. * conform/Makefile (test-xfail-XPG3/glob.h/linknamespace): Remove variable. (test-xfail-XPG3/wordexp.h/linknamespace): Likewise. (test-xfail-XPG4/glob.h/linknamespace): Likewise. (test-xfail-XPG4/wordexp.h/linknamespace): Likewise.
This commit is contained in:
@@ -14,6 +14,8 @@ libc_hidden_proto (execvp)
|
||||
libc_hidden_proto (getpid)
|
||||
libc_hidden_proto (getsid)
|
||||
libc_hidden_proto (getdomainname)
|
||||
extern __typeof (getlogin_r) __getlogin_r __nonnull ((1));
|
||||
libc_hidden_proto (__getlogin_r)
|
||||
libc_hidden_proto (getlogin_r)
|
||||
libc_hidden_proto (seteuid)
|
||||
libc_hidden_proto (setegid)
|
||||
|
||||
Reference in New Issue
Block a user