From ef40eceb3a4ec7c64f4419d96f18fe200c199c02 Mon Sep 17 00:00:00 2001 From: Aaron Eline Date: Fri, 25 Jun 2021 14:26:20 -0400 Subject: [PATCH 1/5] temp workaround --- include/sys/socket_checked.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/include/sys/socket_checked.h b/include/sys/socket_checked.h index 6f2cfb079a..d6543e74d2 100644 --- a/include/sys/socket_checked.h +++ b/include/sys/socket_checked.h @@ -1,6 +1,5 @@ //---------------------------------------------------------------------// -// Bounds-safe interfaces for functions in POSIX socket.h. // -// // +// Bounds-safe interfaces for functions in POSIX socket.h. // // // // ///////////////////////////////////////////////////////////////////////// @@ -32,6 +31,8 @@ #define __SOCKADDR_ARG struct sockaddr *__restrict #endif +#ifndef _GNU_SOURCE + extern int socketpair (int __domain, int __type, int __protocol, int __fds[2] : itype(int _Checked[2])) __THROW; @@ -134,6 +135,8 @@ extern int accept4 ( int __flags); #endif +#endif + #pragma CHECKED_SCOPE pop #endif // guard From fd20d4535a799e4810659a723c22b3e8bf71e062 Mon Sep 17 00:00:00 2001 From: Aaron Eline Date: Fri, 25 Jun 2021 15:53:01 -0400 Subject: [PATCH 2/5] Actual fix probably --- include/sys/socket_checked.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/sys/socket_checked.h b/include/sys/socket_checked.h index d6543e74d2..87807f4067 100644 --- a/include/sys/socket_checked.h +++ b/include/sys/socket_checked.h @@ -24,14 +24,13 @@ #pragma CHECKED_SCOPE push #pragma CHECKED_SCOPE on -#ifdef __APPLE__ +#ifdef __APPLE__ || __linux__ // Seems not to be a thing for Mac #define __THROW #define __CONST_SOCKADDR_ARG const struct sockaddr * #define __SOCKADDR_ARG struct sockaddr *__restrict #endif -#ifndef _GNU_SOURCE extern int socketpair (int __domain, int __type, int __protocol, int __fds[2] : itype(int _Checked[2])) __THROW; @@ -135,7 +134,6 @@ extern int accept4 ( int __flags); #endif -#endif #pragma CHECKED_SCOPE pop From 108b0f36311a1b3a35eb61bff05f8e1c794a8436 Mon Sep 17 00:00:00 2001 From: Aaron Eline Date: Fri, 25 Jun 2021 16:12:22 -0400 Subject: [PATCH 3/5] more robust fix --- include/sys/socket_checked.h | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/include/sys/socket_checked.h b/include/sys/socket_checked.h index 87807f4067..6ea3aa7f5d 100644 --- a/include/sys/socket_checked.h +++ b/include/sys/socket_checked.h @@ -24,14 +24,21 @@ #pragma CHECKED_SCOPE push #pragma CHECKED_SCOPE on -#ifdef __APPLE__ || __linux__ -// Seems not to be a thing for Mac -#define __THROW +#ifndef __CONST_SOCKADDR_ARG #define __CONST_SOCKADDR_ARG const struct sockaddr * +#endif + +#ifndef __SOCKADDR_ARG #define __SOCKADDR_ARG struct sockaddr *__restrict #endif +#ifdef __APPLE__ +// Seems not to be a thing for Mac +#define __THROW +#endif + + extern int socketpair (int __domain, int __type, int __protocol, int __fds[2] : itype(int _Checked[2])) __THROW; From b193b73190cd83e05c4559914254fba3a3e62bbb Mon Sep 17 00:00:00 2001 From: Aaron Eline Date: Mon, 28 Jun 2021 10:01:02 -0400 Subject: [PATCH 4/5] wip --- include/sys/socket_checked.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/sys/socket_checked.h b/include/sys/socket_checked.h index 6ea3aa7f5d..c6f4ce4e47 100644 --- a/include/sys/socket_checked.h +++ b/include/sys/socket_checked.h @@ -42,11 +42,12 @@ extern int socketpair (int __domain, int __type, int __protocol, int __fds[2] : itype(int _Checked[2])) __THROW; +/* extern int bind ( int __fd, __CONST_SOCKADDR_ARG __addr : itype(_Ptr), socklen_t __len) - __THROW; + __THROW;*/ extern int getsockname ( int __fd, From 0e7de1c495ff34f43bea204beaf7465bab78888c Mon Sep 17 00:00:00 2001 From: Aaron Eline Date: Mon, 28 Jun 2021 10:03:08 -0400 Subject: [PATCH 5/5] wip2 --- include/sys/socket_checked.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/sys/socket_checked.h b/include/sys/socket_checked.h index c6f4ce4e47..046525a382 100644 --- a/include/sys/socket_checked.h +++ b/include/sys/socket_checked.h @@ -47,7 +47,7 @@ extern int bind ( int __fd, __CONST_SOCKADDR_ARG __addr : itype(_Ptr), socklen_t __len) - __THROW;*/ + __THROW; extern int getsockname ( int __fd, @@ -142,7 +142,7 @@ extern int accept4 ( int __flags); #endif - +*/ #pragma CHECKED_SCOPE pop #endif // guard