diff options
author | Sebastian Blunt <git@sebastianblunt.com> | 2022-04-15 23:48:50 -0700 |
---|---|---|
committer | Sebastian Blunt <git@sebastianblunt.com> | 2022-04-15 23:59:33 -0700 |
commit | fe903fb7c59600f7679b2afb0d33f4a0c3f93ae2 (patch) | |
tree | a260fe6ecba14ce33ce0892ee0bef3e8bd88eb50 /apps | |
parent | b2c59887a2eeb74d331e3321e0de9e154cb8be13 (diff) | |
download | portable-fe903fb7c59600f7679b2afb0d33f4a0c3f93ae2.tar.gz portable-fe903fb7c59600f7679b2afb0d33f4a0c3f93ae2.tar.bz2 portable-fe903fb7c59600f7679b2afb0d33f4a0c3f93ae2.zip |
Fix unreachable nc portability shim
This fixes nc failing to run on darwin due to it incorrectly setting the
linux-specific SOCK_NONBLOCK flag on connect.
nc already had a portability shim in apps/nc/compat/sys/socket.h, which
kicks in if SOCK_NONBLOCK is undefined. But that header includes
include/compat/sys/socket.h, which also has a portability shim that
defines a default value for SOCK_NONBLOCK if it's undefined. Thus the
first portability shim was unreachable.
Fixes this by moving the NEED_SOCKET_FLAGS flag into the outer shim, and
having the inner shim activate if NEED_SOCKET_FLAGS is defined.
This closes https://github.com/libressl-portable/portable/issues/631
Diffstat (limited to 'apps')
-rw-r--r-- | apps/nc/compat/sys/socket.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/apps/nc/compat/sys/socket.h b/apps/nc/compat/sys/socket.h index 13eb380..2c7ee4f 100644 --- a/apps/nc/compat/sys/socket.h +++ b/apps/nc/compat/sys/socket.h | |||
@@ -6,8 +6,7 @@ | |||
6 | #ifndef _WIN32 | 6 | #ifndef _WIN32 |
7 | #include_next <sys/socket.h> | 7 | #include_next <sys/socket.h> |
8 | 8 | ||
9 | #if !defined(SOCK_NONBLOCK) || !defined(SOCK_CLOEXEC) | 9 | #if defined(NEED_SOCKET_FLAGS) |
10 | #define NEED_SOCKET_FLAGS | ||
11 | int _socket(int domain, int type, int protocol); | 10 | int _socket(int domain, int type, int protocol); |
12 | #ifndef SOCKET_FLAGS_PRIV | 11 | #ifndef SOCKET_FLAGS_PRIV |
13 | #define socket(d, t, p) _socket(d, t, p) | 12 | #define socket(d, t, p) _socket(d, t, p) |