svn commit: r276646 - head/libexec/rtld-elf
Konstantin Belousov
kib at FreeBSD.org
Sun Jan 4 00:33:43 UTC 2015
Author: kib
Date: Sun Jan 4 00:33:41 2015
New Revision: 276646
URL: https://svnweb.freebsd.org/changeset/base/276646
Log:
Do not erronously export 'openat' symbol from rtld.
The symbol leaked after r276630 since lib/libc/sys/openat.c defines
versions for openat using .symver (version script cannot assign two
versions to one symbol), and rtld uses openat. Instead, directly use
__sys_openat().
Reported and tested by: antoine
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Modified:
head/libexec/rtld-elf/rtld.c
Modified: head/libexec/rtld-elf/rtld.c
==============================================================================
--- head/libexec/rtld-elf/rtld.c Sun Jan 4 00:12:30 2015 (r276645)
+++ head/libexec/rtld-elf/rtld.c Sun Jan 4 00:33:41 2015 (r276646)
@@ -166,6 +166,8 @@ static bool matched_symbol(SymLook *, co
void r_debug_state(struct r_debug *, struct link_map *) __noinline;
void _r_debug_postinit(struct link_map *) __noinline;
+int __sys_openat(int, const char *, int, ...);
+
/*
* Data declarations.
*/
@@ -2824,7 +2826,7 @@ search_library_pathfds(const char *name,
dirfd = parse_libdir(fdstr);
if (dirfd < 0)
break;
- fd = openat(dirfd, name, O_RDONLY | O_CLOEXEC);
+ fd = __sys_openat(dirfd, name, O_RDONLY | O_CLOEXEC);
if (fd >= 0) {
*fdp = fd;
len = strlen(fdstr) + strlen(name) + 3;
More information about the svn-src-head
mailing list