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;
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to