[tor-commits] [torsocks/master] Fix: socketpair() denied for INET[6] socket
dgoulet at torproject.org
dgoulet at torproject.org
Fri Apr 4 22:40:28 UTC 2014
commit 44748d5103be53801212ed9feeffaddc30ea420a
Author: David Goulet <dgoulet at ev0ke.net>
Date: Mon Mar 31 15:58:15 2014 -0400
Fix: socketpair() denied for INET[6] socket
The SOCK_STREAM check was wrong since you could pass SOCK_DGRAM and
match the check so the socketpair() now denies INET/INET6 socket.
Note that socketpair() only supports AF_UNIX and AF_LOCAL on most *nix
system.
Signed-off-by: David Goulet <dgoulet at ev0ke.net>
---
src/lib/socketpair.c | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)
diff --git a/src/lib/socketpair.c b/src/lib/socketpair.c
index a358124..c1c70f7 100644
--- a/src/lib/socketpair.c
+++ b/src/lib/socketpair.c
@@ -32,17 +32,10 @@ LIBC_SOCKETPAIR_RET_TYPE tsocks_socketpair(LIBC_SOCKETPAIR_SIG)
DBG("[socketpair] Creating socket with domain %d, type %d and protocol %d",
domain, type, protocol);
- switch (type) {
- case SOCK_STREAM:
- break;
- default:
- if (domain == AF_INET || domain == AF_INET6) {
- ERR("Non TCP socketpair denied. Tor network can't handle it. "
- "Stopping everything!");
- errno = EINVAL;
- return -1;
- }
- break;
+ if (domain == AF_INET || domain == AF_INET6) {
+ DBG("Non TCP socketpair denied. Tor network can't handle it.");
+ errno = EPERM;
+ return -1;
}
/* Stream socket for INET/INET6 is good so open it. */
More information about the tor-commits
mailing list