[compiler-rt] [compiler-rt] adding __sanitizer_sockaddr definition for freebsd. (PR #85870)

David CARLIER via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 19 14:53:38 PDT 2024


https://github.com/devnexen created https://github.com/llvm/llvm-project/pull/85870

None

>From 2ad420f09abf07db2f177b38ec8f719642382577 Mon Sep 17 00:00:00 2001
From: David Carlier <devnexen at gmail.com>
Date: Tue, 19 Mar 2024 21:52:27 +0000
Subject: [PATCH] [compiler-rt] adding __sanitizer_sockaddr definition for
 freebsd.

---
 .../sanitizer_platform_limits_freebsd.cpp          |  1 +
 .../sanitizer_platform_limits_freebsd.h            | 14 ++++++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cpp
index 4940062eeae47f..f5451a9d0b5b1c 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cpp
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cpp
@@ -476,6 +476,7 @@ CHECK_TYPE_SIZE(sigset_t);
 
 COMPILER_CHECK(sizeof(__sanitizer_sigaction) == sizeof(struct sigaction));
 COMPILER_CHECK(sizeof(__sanitizer_siginfo) == sizeof(siginfo_t));
+COMPILER_CHECK(sizeof(__sanitizer_sockaddr) == sizeof(struct sockaddr));
 CHECK_SIZE_AND_OFFSET(siginfo_t, si_value);
 // Can't write checks for sa_handler and sa_sigaction due to them being
 // preprocessor macros.
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.h
index 8ce73f206fd88d..62b37098bc68d7 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.h
@@ -154,14 +154,20 @@ struct __sanitizer_iovec {
   uptr iov_len;
 };
 
+struct __sanitizer_sockaddr {
+  unsigned char sa_len;
+  unsigned char sa_family;
+  char sa_data[14];
+};
+
 struct __sanitizer_ifaddrs {
   struct __sanitizer_ifaddrs *ifa_next;
   char *ifa_name;
   unsigned int ifa_flags;
-  void *ifa_addr;     // (struct sockaddr *)
-  void *ifa_netmask;  // (struct sockaddr *)
+  __sanitizer_sockaddr *ifa_addr;
+  __sanitizer_sockaddr *ifa_netmask;
 #  undef ifa_dstaddr
-  void *ifa_dstaddr;  // (struct sockaddr *)
+  __sanitizer_sockaddr *ifa_dstaddr;  // (struct sockaddr *)
   void *ifa_data;
 };
 
@@ -367,7 +373,7 @@ struct __sanitizer_addrinfo {
   int ai_protocol;
   unsigned ai_addrlen;
   char *ai_canonname;
-  void *ai_addr;
+  __sanitizer_sockaddr *ai_addr;
   struct __sanitizer_addrinfo *ai_next;
 };
 



More information about the llvm-commits mailing list