@@ -843,6 +843,17 @@ INTERCEPTOR(int, getsockname, int socket, struct sockaddr *sa,
843843#define RTSAN_MAYBE_INTERCEPT_GETSOCKNAME
844844#endif
845845
846+ #if SANITIZER_INTERCEPT_GETPEERNAME
847+ INTERCEPTOR (int , getpeername, int socket, struct sockaddr *sa,
848+ socklen_t *salen) {
849+ __rtsan_notify_intercepted_call (" getpeername" );
850+ return REAL (getpeername)(socket, sa, salen);
851+ }
852+ #define RTSAN_MAYBE_INTERCEPT_GETPEERNAME INTERCEPT_FUNCTION (getpeername)
853+ #else
854+ #define RTSAN_MAYBE_INTERCEPT_GETPEERNAME
855+ #endif
856+
846857INTERCEPTOR (int , bind, int socket, const struct sockaddr *address,
847858 socklen_t address_len) {
848859 __rtsan_notify_intercepted_call (" bind" );
@@ -882,6 +893,17 @@ INTERCEPTOR(ssize_t, sendmsg, int socket, const struct msghdr *message,
882893 return REAL (sendmsg)(socket, message, flags);
883894}
884895
896+ #if SANITIZER_INTERCEPT_SENDMMSG
897+ INTERCEPTOR (int , sendmmsg, int socket, struct mmsghdr *message,
898+ unsigned int len, int flags) {
899+ __rtsan_notify_intercepted_call (" sendmmsg" );
900+ return REAL (sendmmsg)(socket, message, len, flags);
901+ }
902+ #define RTSAN_MAYBE_INTERCEPT_SENDMMSG INTERCEPT_FUNCTION (sendmmsg)
903+ #else
904+ #define RTSAN_MAYBE_INTERCEPT_SENDMMSG
905+ #endif
906+
885907INTERCEPTOR (ssize_t , sendto, int socket, const void *buffer, size_t length,
886908 int flags, const struct sockaddr *dest_addr, socklen_t dest_len) {
887909 __rtsan_notify_intercepted_call (" sendto" );
@@ -904,6 +926,17 @@ INTERCEPTOR(ssize_t, recvmsg, int socket, struct msghdr *message, int flags) {
904926 return REAL (recvmsg)(socket, message, flags);
905927}
906928
929+ #if SANITIZER_INTERCEPT_RECVMMSG
930+ INTERCEPTOR (int , recvmmsg, int socket, struct mmsghdr *message,
931+ unsigned int len, int flags, struct timespec *timeout) {
932+ __rtsan_notify_intercepted_call (" recvmmsg" );
933+ return REAL (recvmmsg)(socket, message, len, flags, timeout);
934+ }
935+ #define RTSAN_MAYBE_INTERCEPT_RECVMMSG INTERCEPT_FUNCTION (recvmmsg)
936+ #else
937+ #define RTSAN_MAYBE_INTERCEPT_RECVMMSG
938+ #endif
939+
907940INTERCEPTOR (int , shutdown, int socket, int how) {
908941 __rtsan_notify_intercepted_call (" shutdown" );
909942 return REAL (shutdown)(socket, how);
@@ -1209,13 +1242,16 @@ void __rtsan::InitializeInterceptors() {
12091242 INTERCEPT_FUNCTION (recv);
12101243 INTERCEPT_FUNCTION (recvfrom);
12111244 INTERCEPT_FUNCTION (recvmsg);
1245+ RTSAN_MAYBE_INTERCEPT_RECVMMSG;
12121246 INTERCEPT_FUNCTION (send);
12131247 INTERCEPT_FUNCTION (sendmsg);
1248+ RTSAN_MAYBE_INTERCEPT_SENDMMSG;
12141249 INTERCEPT_FUNCTION (sendto);
12151250 INTERCEPT_FUNCTION (shutdown);
12161251 INTERCEPT_FUNCTION (socket);
12171252 RTSAN_MAYBE_INTERCEPT_ACCEPT4;
12181253 RTSAN_MAYBE_INTERCEPT_GETSOCKNAME;
1254+ RTSAN_MAYBE_INTERCEPT_GETPEERNAME;
12191255
12201256 RTSAN_MAYBE_INTERCEPT_SELECT;
12211257 INTERCEPT_FUNCTION (pselect);
0 commit comments