[tor-commits] [torsocks/master] Fix: bad include and duplicate syscall values

dgoulet at torproject.org dgoulet at torproject.org
Fri Apr 4 22:40:27 UTC 2014


commit 8bdc54163af8048e4a301162d8d1fafc01e6fc71
Author: David Goulet <dgoulet at ev0ke.net>
Date:   Sat Nov 9 14:11:54 2013 -0500

    Fix: bad include and duplicate syscall values
    
    First, for the unistd.h include, remove the i386 and s390/x defined to
    include asm-generic/unistd.h since this header is x64 specific! If some
    syscall's values are missing, they will be nullified and handled
    accordingly.
    
    The second issue is that we set different bad values to an unknown
    syscall value so we don't end up with duplicates in the torsocks syscall
    wrapper switch case.
    
    Fixes #18
    
    Signed-off-by: David Goulet <dgoulet at ev0ke.net>
---
 src/common/compat.h |   21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/src/common/compat.h b/src/common/compat.h
index f8e241e..e9a59e7 100644
--- a/src/common/compat.h
+++ b/src/common/compat.h
@@ -46,34 +46,31 @@ void tsocks_mutex_unlock(tsocks_mutex_t *m);
 #endif /* __GLIBC__, __darwin__, __FreeBSD__, __NetBSD__ */
 
 #if defined(__linux__)
-
-#if defined(__i386) || defined(__s390__) || defined(__s390x__)
-#include <asm-generic/unistd.h>
-#else
 #include <unistd.h>
-#endif /* defined __i386 */
-
 #include <sys/syscall.h>
 
 /*
  * Some old system requires kernel headers for those values. If they are not
- * defined, set them to a non syscall value. Just to be clear, if the value is
- * undefined (here -1), tsocks syscall() will DENY the real syscall if catched.
+ * defined, set them to a bad syscall value. Just to be clear, if the value is
+ * undefined, tsocks syscall() will DENY the real syscall if catched.
+ *
+ * The values are not the same per syscall here so we don't end up with
+ * duplicates in the switch case in the tsocks sycall wrapper.
  */
 #ifndef __NR_socket
 #define __NR_socket -1
 #endif
 #ifndef __NR_connect
-#define __NR_connect -1
+#define __NR_connect -2
 #endif
 #ifndef __NR_close
-#define __NR_close -1
+#define __NR_close -3
 #endif
 #ifndef __NR_mmap
-#define __NR_mmap -1
+#define __NR_mmap -4
 #endif
 #ifndef __NR_munmap
-#define __NR_munmap -1
+#define __NR_munmap -5
 #endif
 
 #define TSOCKS_NR_SOCKET    __NR_socket





More information about the tor-commits mailing list