Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Jan 2015 00:33:42 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r276646 - head/libexec/rtld-elf
Message-ID:  <201501040033.t040XgoC070080@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201501040033.t040XgoC070080>