mirror of
https://github.com/feather-wallet/feather.git
synced 2024-11-17 09:47:36 +00:00
54 lines
1.8 KiB
Diff
54 lines
1.8 KiB
Diff
|
From fc5eafeb2886605d4de1546846f06a12a18c87ef Mon Sep 17 00:00:00 2001
|
||
|
From: "J.W" <jakwings@gmail.com>
|
||
|
Date: Mon, 22 Apr 2019 05:19:32 +0100
|
||
|
Subject: [PATCH 1/2] Fix macros for accept4(2)
|
||
|
|
||
|
Both accept(2) and accept4(2) exist on linux but accept4(2) does not
|
||
|
exist on macos 10.11.6 (and maybe other distros).
|
||
|
---
|
||
|
src/lib/torsocks.c | 9 ++++++++-
|
||
|
src/lib/torsocks.h | 4 +++-
|
||
|
2 files changed, 11 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/src/lib/torsocks.c b/src/lib/torsocks.c
|
||
|
index 16f2da0..9527513 100644
|
||
|
--- a/src/lib/torsocks.c
|
||
|
+++ b/src/lib/torsocks.c
|
||
|
@@ -234,9 +234,16 @@ static void init_libc_symbols(void)
|
||
|
tsocks_libc_socket = dlsym(libc_ptr, LIBC_SOCKET_NAME_STR);
|
||
|
tsocks_libc_syscall = dlsym(libc_ptr, LIBC_SYSCALL_NAME_STR);
|
||
|
tsocks_libc_execve = dlsym(libc_ptr, LIBC_EXECVE_NAME_STR);
|
||
|
+ tsocks_libc_accept = dlsym(libc_ptr, LIBC_ACCEPT_NAME_STR);
|
||
|
+#if (defined(__linux__))
|
||
|
tsocks_libc_accept4 = dlsym(libc_ptr, LIBC_ACCEPT4_NAME_STR);
|
||
|
+#endif
|
||
|
+
|
||
|
if (!tsocks_libc_connect || !tsocks_libc_close || !tsocks_libc_socket ||
|
||
|
- !tsocks_libc_syscall || !tsocks_libc_execve || ! tsocks_libc_accept4) {
|
||
|
+#if (defined(__linux__))
|
||
|
+ !tsocks_libc_accept4 ||
|
||
|
+#endif
|
||
|
+ !tsocks_libc_syscall || !tsocks_libc_execve || ! tsocks_libc_accept) {
|
||
|
ERR("Unable to lookup symbols in " LIBC_NAME "(%s)", dlerror());
|
||
|
goto error;
|
||
|
}
|
||
|
diff --git a/src/lib/torsocks.h b/src/lib/torsocks.h
|
||
|
index 33da526..bf9109d 100644
|
||
|
--- a/src/lib/torsocks.h
|
||
|
+++ b/src/lib/torsocks.h
|
||
|
@@ -30,8 +30,10 @@
|
||
|
* libc call outside of torsocks can be used. These are declared for each
|
||
|
* symbol torsocks hijacked.
|
||
|
*/
|
||
|
+#define TSOCKS_LIBC_FUNC(name) \
|
||
|
+ tsocks_libc_##name
|
||
|
#define TSOCKS_LIBC_DECL(name, type, sig) \
|
||
|
- type (*tsocks_libc_##name)(sig);
|
||
|
+ type (*TSOCKS_LIBC_FUNC(name))(sig);
|
||
|
#define TSOCKS_DECL(name, type, sig) \
|
||
|
extern type tsocks_##name(sig);
|
||
|
|
||
|
--
|
||
|
2.21.0
|
||
|
|