@@ -843,6 +843,17 @@ INTERCEPTOR(int, getsockname, int socket, struct sockaddr *sa,
843
843
#define RTSAN_MAYBE_INTERCEPT_GETSOCKNAME
844
844
#endif
845
845
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
+
846
857
INTERCEPTOR (int , bind, int socket, const struct sockaddr *address,
847
858
socklen_t address_len) {
848
859
__rtsan_notify_intercepted_call (" bind" );
@@ -882,6 +893,17 @@ INTERCEPTOR(ssize_t, sendmsg, int socket, const struct msghdr *message,
882
893
return REAL (sendmsg)(socket, message, flags);
883
894
}
884
895
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
+
885
907
INTERCEPTOR (ssize_t , sendto, int socket, const void *buffer, size_t length,
886
908
int flags, const struct sockaddr *dest_addr, socklen_t dest_len) {
887
909
__rtsan_notify_intercepted_call (" sendto" );
@@ -904,6 +926,17 @@ INTERCEPTOR(ssize_t, recvmsg, int socket, struct msghdr *message, int flags) {
904
926
return REAL (recvmsg)(socket, message, flags);
905
927
}
906
928
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
+
907
940
INTERCEPTOR (int , shutdown, int socket, int how) {
908
941
__rtsan_notify_intercepted_call (" shutdown" );
909
942
return REAL (shutdown)(socket, how);
@@ -1209,13 +1242,16 @@ void __rtsan::InitializeInterceptors() {
1209
1242
INTERCEPT_FUNCTION (recv);
1210
1243
INTERCEPT_FUNCTION (recvfrom);
1211
1244
INTERCEPT_FUNCTION (recvmsg);
1245
+ RTSAN_MAYBE_INTERCEPT_RECVMMSG;
1212
1246
INTERCEPT_FUNCTION (send);
1213
1247
INTERCEPT_FUNCTION (sendmsg);
1248
+ RTSAN_MAYBE_INTERCEPT_SENDMMSG;
1214
1249
INTERCEPT_FUNCTION (sendto);
1215
1250
INTERCEPT_FUNCTION (shutdown);
1216
1251
INTERCEPT_FUNCTION (socket);
1217
1252
RTSAN_MAYBE_INTERCEPT_ACCEPT4;
1218
1253
RTSAN_MAYBE_INTERCEPT_GETSOCKNAME;
1254
+ RTSAN_MAYBE_INTERCEPT_GETPEERNAME;
1219
1255
1220
1256
RTSAN_MAYBE_INTERCEPT_SELECT;
1221
1257
INTERCEPT_FUNCTION (pselect );
0 commit comments