Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Feb 2025 20:05:59 GMT
From:      Brooks Davis <brooks@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: cdb24fbb0a75 - main - libsys: Don't create or expose __realpathat
Message-ID:  <202502192005.51JK5xmZ097655@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by brooks:

URL: https://cgit.FreeBSD.org/src/commit/?id=cdb24fbb0a75209043efd3b5e94faa57dfc44bd1

commit cdb24fbb0a75209043efd3b5e94faa57dfc44bd1
Author:     Brooks Davis <brooks@FreeBSD.org>
AuthorDate: 2025-02-19 16:53:32 +0000
Commit:     Brooks Davis <brooks@FreeBSD.org>
CommitDate: 2025-02-19 20:05:47 +0000

    libsys: Don't create or expose __realpathat
    
    Previously, __realpathat was in libc and libsys (as is currently
    standard), but not exported from libc which meant the stub in libc was
    not filtered and thus libc's copy of the syscall was used.  This broke
    an upcoming change to CheriBSD limiting syscalls to libsys.
    
    The realpath(3) implementation now uses __sys___realpathat so there are no
    consumers of __realpathat.  Switch it to PSEUDO (only _foo and __sys_foo
    symbols) and remove __realpathat from Symbol.map.
    
    This is a corrected version of 58d43a3cd72a4a85ab8489313672c7eab367495e.
    
    Reviewed by:    kib
    Differential Revision:  https://reviews.freebsd.org/D49049
---
 lib/libsys/Makefile.sys                 | 1 +
 lib/libsys/Symbol.map                   | 1 -
 libexec/rtld-elf/rtld-libc/Makefile.inc | 2 +-
 3 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/libsys/Makefile.sys b/lib/libsys/Makefile.sys
index b38cd5935e2f..491c765e9416 100644
--- a/lib/libsys/Makefile.sys
+++ b/lib/libsys/Makefile.sys
@@ -50,6 +50,7 @@ STATICOBJS+=	interposing_table.o
 .endif
 
 PSEUDO= \
+	__realpathat \
 	clock_gettime \
 	exit \
 	getlogin \
diff --git a/lib/libsys/Symbol.map b/lib/libsys/Symbol.map
index 51ea1b5da231..eb71c813ae86 100644
--- a/lib/libsys/Symbol.map
+++ b/lib/libsys/Symbol.map
@@ -3,7 +3,6 @@ FBSDprivate_1.0 {
 	__libsys_errno;
 	__getosreldate;
 	__libsys_interposing_slot;
-	__realpathat;
 	_elf_aux_info;
 	freebsd11_fstat;
 	freebsd11_fstatat;
diff --git a/libexec/rtld-elf/rtld-libc/Makefile.inc b/libexec/rtld-elf/rtld-libc/Makefile.inc
index c3a74fbecbdc..14f31f05829d 100644
--- a/libexec/rtld-elf/rtld-libc/Makefile.inc
+++ b/libexec/rtld-elf/rtld-libc/Makefile.inc
@@ -58,7 +58,7 @@ _libc_other_objects= sigsetjmp lstat stat fstat fstatat fstatfs syscall \
     sysarch __sysctl issetugid __getcwd utrace getpid \
     thr_self thr_kill pread mmap lseek _exit \
     getdirentries _close _fcntl _open _openat _read \
-    _sigprocmask _write readlink __realpathat _setjmp setjmp setjmperr
+    _sigprocmask _write readlink ___realpathat _setjmp setjmp setjmperr
 
 
 # Finally add additional architecture-dependent libc dependencies



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