[torsocks/master] Fix: set loopback check in host byte order

commit c5a7493bbdff681ba6be440d39891c090a5b1345 Author: David Goulet <dgoulet@ev0ke.net> Date: Thu Nov 7 20:37:11 2013 -0500 Fix: set loopback check in host byte order Signed-off-by: David Goulet <dgoulet@ev0ke.net> --- src/common/compat.h | 5 +++-- src/lib/connect.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/common/compat.h b/src/common/compat.h index faadfdb..f8e241e 100644 --- a/src/common/compat.h +++ b/src/common/compat.h @@ -103,10 +103,11 @@ void tsocks_mutex_unlock(tsocks_mutex_t *m); /* * Shamelessly taken from linux/in.h of the libc. This is consider trivial code - * by the GPL license thus copying it as is should be OK. + * by the GPL license thus copying it as is should be OK. Slight modification + * was made to make the check in host byte order. */ #ifndef IN_LOOPBACK -#define IN_LOOPBACK(a) ((((long int) (a)) & 0xff000000) == 0x7f000000) +#define IN_LOOPBACK(a) ((((long int) (a)) & 0x000000ff) == 0x0000007f) #endif #endif /* TORSOCKS_COMPAT_H */ diff --git a/src/lib/connect.c b/src/lib/connect.c index 09d3be6..ab2e082 100644 --- a/src/lib/connect.c +++ b/src/lib/connect.c @@ -73,7 +73,7 @@ LIBC_CONNECT_RET_TYPE tsocks_connect(LIBC_CONNECT_SIG) /* Check if address is local IPv4. */ if (__addr->sa_family == AF_INET && - utils_is_ipv4_local(be32toh(inet_addr->sin_addr.s_addr))) { + utils_is_ipv4_local(inet_addr->sin_addr.s_addr)) { WARN("[connect] Connection to a local address are denied since it " "might be a TCP DNS query to a local DNS server. " "Rejecting it for safety reasons.");
participants (1)
-
dgoulet@torproject.org