Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 4 Mar 2023 09:12:54 GMT
From:      Dmitry Chagin <dchagin@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 945a7f0d21a0 - main - linux(4): Assert that the FreeBSD size of struct sockaddr is equal to Linux
Message-ID:  <202303040912.3249Csks079024@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by dchagin:

URL: https://cgit.FreeBSD.org/src/commit/?id=945a7f0d21a0bcbcce3f308e080f54dfb7da54b1

commit 945a7f0d21a0bcbcce3f308e080f54dfb7da54b1
Author:     Dmitry Chagin <dchagin@FreeBSD.org>
AuthorDate: 2023-03-04 09:11:39 +0000
Commit:     Dmitry Chagin <dchagin@FreeBSD.org>
CommitDate: 2023-03-04 09:11:39 +0000

    linux(4): Assert that the FreeBSD size of struct sockaddr is equal to Linux
    
    Our code depends on the fact that the size of struct sockaddr and
    the size of sa_data is equal between FreeBSD and Linux.
---
 sys/compat/linux/linux.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/sys/compat/linux/linux.c b/sys/compat/linux/linux.c
index a4df46d7f9a7..53a874ebfab7 100644
--- a/sys/compat/linux/linux.c
+++ b/sys/compat/linux/linux.c
@@ -57,6 +57,10 @@ __FBSDID("$FreeBSD$");
 #include <compat/linux/linux_util.h>
 
 _Static_assert(LINUX_IFNAMSIZ == IFNAMSIZ, "Linux IFNAMSIZ");
+_Static_assert(sizeof(struct sockaddr) == sizeof(struct l_sockaddr),
+    "Linux struct sockaddr size");
+_Static_assert(offsetof(struct sockaddr, sa_data) ==
+    offsetof(struct l_sockaddr, sa_data), "Linux struct sockaddr layout");
 
 static bool use_real_ifnames = false;
 SYSCTL_BOOL(_compat_linux, OID_AUTO, use_real_ifnames, CTLFLAG_RWTUN,



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202303040912.3249Csks079024>