[compiler-rt] Fix sendmmsg and recvmmsg rtsan interceptor for MUSL (PR #123907)
Yi Kong via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 22 00:46:20 PST 2025
https://github.com/kongy created https://github.com/llvm/llvm-project/pull/123907
MUSL have different signatures for sendmmsg and recvmmsg.
>From 66895c43df1f0c4372f468c2cdaefebab2e8205f Mon Sep 17 00:00:00 2001
From: Yi Kong <yikong at google.com>
Date: Wed, 22 Jan 2025 16:42:52 +0800
Subject: [PATCH] Fix sendmmsg and recvmmsg rtsan interceptor for MUSL
---
compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp b/compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp
index 112191f52648e7..008cc676a6ae55 100644
--- a/compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp
+++ b/compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp
@@ -894,8 +894,13 @@ INTERCEPTOR(ssize_t, sendmsg, int socket, const struct msghdr *message,
}
#if SANITIZER_INTERCEPT_SENDMMSG
+#if SANITIZER_MUSL
+INTERCEPTOR(int, sendmmsg, int socket, struct mmsghdr *message,
+ unsigned int len, unsigned int flags) {
+#else
INTERCEPTOR(int, sendmmsg, int socket, struct mmsghdr *message,
unsigned int len, int flags) {
+#endif
__rtsan_notify_intercepted_call("sendmmsg");
return REAL(sendmmsg)(socket, message, len, flags);
}
@@ -927,7 +932,10 @@ INTERCEPTOR(ssize_t, recvmsg, int socket, struct msghdr *message, int flags) {
}
#if SANITIZER_INTERCEPT_RECVMMSG
-#if defined(__GLIBC_MINOR__) && __GLIBC_MINOR__ < 21
+#if SANITIZER_MUSL
+INTERCEPTOR(int, recvmmsg, int socket, struct mmsghdr *message,
+ unsigned int len, unsigned int flags, struct timespec *timeout) {
+#elif defined(__GLIBC_MINOR__) && __GLIBC_MINOR__ < 21
INTERCEPTOR(int, recvmmsg, int socket, struct mmsghdr *message,
unsigned int len, int flags, const struct timespec *timeout) {
#else
More information about the llvm-commits
mailing list