git: d5f8270917bf - main - libc: switch to __weak_symbol for fortified interpose stubs
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 16 Jul 2024 05:12:48 UTC
The branch main has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=d5f8270917bfee4242778544b990bb7f82f8a4de commit d5f8270917bfee4242778544b990bb7f82f8a4de Author: Kyle Evans <kevans@FreeBSD.org> AuthorDate: 2024-07-16 05:12:28 +0000 Commit: Kyle Evans <kevans@FreeBSD.org> CommitDate: 2024-07-16 05:12:28 +0000 libc: switch to __weak_symbol for fortified interpose stubs GCC doesn't like `#pragma weak macro(foo)`, but that's fine; just slap a __weak_symbol on the definition to more reliably make it weak anyways. Reviewed by: kib (earlier version), markj Sponsored by: Klara, Inc. Sponsored by: Stormshield Differential Revision: https://reviews.freebsd.org/D45976 --- lib/libc/sys/poll.c | 3 +-- lib/libc/sys/ppoll.c | 3 +-- lib/libc/sys/readv.c | 3 +-- lib/libc/sys/recvfrom.c | 3 +-- lib/libc/sys/recvmsg.c | 3 +-- 5 files changed, 5 insertions(+), 10 deletions(-) diff --git a/lib/libc/sys/poll.c b/lib/libc/sys/poll.c index 7a418afbbf49..5e000f7e728f 100644 --- a/lib/libc/sys/poll.c +++ b/lib/libc/sys/poll.c @@ -36,8 +36,7 @@ __weak_reference(__sys_poll, __poll); -#pragma weak __ssp_real(poll) -int +int __weak_symbol __ssp_real(poll)(struct pollfd pfd[], nfds_t nfds, int timeout) { return (INTERPOS_SYS(poll, pfd, nfds, timeout)); diff --git a/lib/libc/sys/ppoll.c b/lib/libc/sys/ppoll.c index ef72a902548b..72c0b5d5e421 100644 --- a/lib/libc/sys/ppoll.c +++ b/lib/libc/sys/ppoll.c @@ -36,8 +36,7 @@ __weak_reference(__sys_ppoll, __ppoll); -#pragma weak __ssp_real(ppoll) -int +int __weak_symbol __ssp_real(ppoll)(struct pollfd pfd[], nfds_t nfds, const struct timespec *__restrict timeout, const sigset_t *__restrict newsigmask) diff --git a/lib/libc/sys/readv.c b/lib/libc/sys/readv.c index d58dba1fc47e..2729f6ed99da 100644 --- a/lib/libc/sys/readv.c +++ b/lib/libc/sys/readv.c @@ -38,8 +38,7 @@ __weak_reference(__sys_readv, __readv); -#pragma weak readv -ssize_t +ssize_t __weak_symbol __ssp_real(readv)(int fd, const struct iovec *iov, int iovcnt) { return (INTERPOS_SYS(readv, fd, iov, iovcnt)); diff --git a/lib/libc/sys/recvfrom.c b/lib/libc/sys/recvfrom.c index 6247b315d078..0cdbd8a4ccaa 100644 --- a/lib/libc/sys/recvfrom.c +++ b/lib/libc/sys/recvfrom.c @@ -37,8 +37,7 @@ __weak_reference(__sys_recvfrom, __recvfrom); -#pragma weak recvfrom -ssize_t +ssize_t __weak_symbol __ssp_real(recvfrom)(int s, void *buf, size_t len, int flags, struct sockaddr * __restrict from, socklen_t * __restrict fromlen) { diff --git a/lib/libc/sys/recvmsg.c b/lib/libc/sys/recvmsg.c index 334049d6cfad..ce0f5e0478cd 100644 --- a/lib/libc/sys/recvmsg.c +++ b/lib/libc/sys/recvmsg.c @@ -37,8 +37,7 @@ __weak_reference(__sys_recvmsg, __recvmsg); -#pragma weak recvmsg -ssize_t +ssize_t __weak_symbol __ssp_real(recvmsg)(int s, struct msghdr *msg, int flags) { return (INTERPOS_SYS(recvmsg, s, msg, flags));