diff options
author | Joseph Myers <joseph@codesourcery.com> | 2014-11-12 22:39:36 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2014-11-12 22:39:36 +0000 |
commit | c4eae75271734f820a7477dbce33f8752af6f003 (patch) | |
tree | c909cac6bbda2c97e0003221ecd656cc668deb11 /ChangeLog | |
parent | 01cad84e1996a6f20bf19609d0554c73f2ee33d5 (diff) | |
download | glibc-c4eae75271734f820a7477dbce33f8752af6f003.tar.gz glibc-c4eae75271734f820a7477dbce33f8752af6f003.tar.xz glibc-c4eae75271734f820a7477dbce33f8752af6f003.zip |
Fix __get_nprocs fgets_unlocked namespace (bug 17582).
__get_nprocs is called from malloc code, but calls fgets_unlocked, which is not an ISO C or POSIX function. This patch fixes it to call a new __fgets_unlocked name instead. Note: there are various other uses of fgets_unlocked in glibc's libraries, and I haven't yet investigated which others might also be problematic (called directly or indirectly from standard functions) and so need to change to use __fgets_unlocked. Tested for x86_64 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). [BZ #17582] * libio/iofgets.c [weak_alias && !_IO_MTSAFE_IO] (__fgets_unlocked): Add alias of _IO_fgets. Use libc_hidden_def. * libio/iofgets_u.c (fgets_unlocked): Rename to __fgets_unlocked and define as weak alias of __fgets_unlocked. Use libc_hidden_weak. (__fgets_unlocked): Use libc_hidden_def. * include/stdio.h (__fgets_unlocked): Declare. Use libc_hidden_proto. * sysdeps/unix/sysv/linux/getsysstats.c (phys_pages_info): Use __fgets_unlocked instead of fgets_unlocked. * sysdeps/unix/sysv/linux/alpha/getsysstats.c (GET_NPROCS_CONF_PARSER): Likewise. * sysdeps/unix/sysv/linux/sparc/getsysstats.c (GET_NPROCS_CONF_PARSER): Likewise.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 56fff4c9fa..90ea96b355 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,21 @@ 2014-11-12 Joseph Myers <joseph@codesourcery.com> + [BZ #17582] + * libio/iofgets.c [weak_alias && !_IO_MTSAFE_IO] + (__fgets_unlocked): Add alias of _IO_fgets. Use libc_hidden_def. + * libio/iofgets_u.c (fgets_unlocked): Rename to __fgets_unlocked + and define as weak alias of __fgets_unlocked. Use + libc_hidden_weak. + (__fgets_unlocked): Use libc_hidden_def. + * include/stdio.h (__fgets_unlocked): Declare. Use + libc_hidden_proto. + * sysdeps/unix/sysv/linux/getsysstats.c (phys_pages_info): Use + __fgets_unlocked instead of fgets_unlocked. + * sysdeps/unix/sysv/linux/alpha/getsysstats.c + (GET_NPROCS_CONF_PARSER): Likewise. + * sysdeps/unix/sysv/linux/sparc/getsysstats.c + (GET_NPROCS_CONF_PARSER): Likewise. + [BZ #17574] * wcsmbs/wmemset.c (wmemset): Rename to __wmemset and define as weak alias of __wmemset. Use libc_hidden_weak. |