diff --git a/net/torsocks/files/patch-src_lib_getpeername.c b/net/torsocks/files/patch-src_lib_getpeername.c index 15bceb1ab32e..571d0ec47450 100644 --- a/net/torsocks/files/patch-src_lib_getpeername.c +++ b/net/torsocks/files/patch-src_lib_getpeername.c @@ -1,19 +1,19 @@ - workaround for https://gitlab.torproject.org/tpo/core/torsocks/-/issues/40023 ---- src/lib/getpeername.c.orig 2024-07-25 16:31:28 UTC +--- src/lib/getpeername.c.orig 2022-05-25 14:36:05 UTC +++ src/lib/getpeername.c -@@ -22,6 +22,8 @@ - - #include "torsocks.h" +@@ -92,6 +92,8 @@ libc: + return tsocks_libc_getpeername(LIBC_GETPEERNAME_ARGS); + } +#if __FreeBSD_cc_version < 1500000 + - /* getpeername(2) */ - TSOCKS_LIBC_DECL(getpeername, LIBC_GETPEERNAME_RET_TYPE, - LIBC_GETPEERNAME_SIG) + /* + * Libc hijacked symbol getpeername(2). + */ @@ -105,3 +107,5 @@ LIBC_GETPEERNAME_DECL return tsocks_getpeername(LIBC_GETPEERNAME_ARGS); } + +#endif diff --git a/net/torsocks/files/patch-src_lib_syscall.c b/net/torsocks/files/patch-src_lib_syscall.c index 4dc78c547a49..965612662ed3 100644 --- a/net/torsocks/files/patch-src_lib_syscall.c +++ b/net/torsocks/files/patch-src_lib_syscall.c @@ -1,52 +1,52 @@ Patch by Stefan Ehmann, see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=233736 ---- src/lib/syscall.c.orig 2018-04-20 15:41:42 UTC +--- src/lib/syscall.c.orig 2022-05-25 14:36:05 UTC +++ src/lib/syscall.c -@@ -84,7 +84,7 @@ static LIBC_ACCEPT_RET_TYPE handle_accep +@@ -84,7 +84,7 @@ static LIBC_ACCEPT_RET_TYPE handle_accept(va_list args return tsocks_accept(sockfd, addr, &addrlen); } -#if !((defined(__NetBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) && defined(__x86_64)) +#if defined(__FreeBSD__) /* * Handle mmap(2) syscall. */ -@@ -457,7 +457,7 @@ LIBC_SYSCALL_RET_TYPE tsocks_syscall(lon +@@ -498,7 +498,7 @@ LIBC_SYSCALL_RET_TYPE tsocks_syscall(long int number, ret = handle_close(args); break; case TSOCKS_NR_MMAP: -#if (defined(__NetBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) && defined(__x86_64) +#if defined(badbadbad) /* * On an 64 bit *BSD system, __syscall(2) should be used for mmap(). * This is NOT suppose to happen but for protection we deny that call. -@@ -559,6 +559,14 @@ LIBC_SYSCALL_RET_TYPE tsocks_syscall(lon - ret = handle_memfd_create(args); +@@ -606,6 +606,14 @@ LIBC_SYSCALL_RET_TYPE tsocks_syscall(long int number, + ret = handle_getdents64(args); break; #endif /* __linux__ */ +#if defined(__FreeBSD__) + case TSOCKS_NR_FORK: + ret = tsocks_libc_syscall(TSOCKS_NR_FORK); + break; + case TSOCKS_NR_GETPID: + ret = tsocks_libc_syscall(TSOCKS_NR_GETPID); + break; +#endif default: - /* - * Because of the design of syscall(), we can't pass a va_list to it so -@@ -633,6 +641,14 @@ LIBC___SYSCALL_RET_TYPE tsocks___syscall + DBG("[syscall] Unsupported __syscall number %ld. Passing through", + number); +@@ -675,6 +683,14 @@ LIBC___SYSCALL_RET_TYPE tsocks___syscall(quad_t number */ ret = handle_bsd_mmap(args); break; +#if defined(__FreeBSD__) + case TSOCKS_NR_FORK: + ret = tsocks_libc_syscall(TSOCKS_NR_FORK); + break; + case TSOCKS_NR_GETPID: + ret = tsocks_libc_syscall(TSOCKS_NR_GETPID); + break; +#endif default: /* * Because of the design of syscall(), we can't pass a va_list to it so