From 68a13080147d71d94aa041c3e67f73f52d14bcf4 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Wed, 20 Jan 2016 22:24:43 +0000 Subject: [PATCH] Bug #358030 Support direct socket calls on x86 32bit (new in linux 4.3) Patch by ronald.wahl@raritan.com. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15764 --- NEWS | 1 + coregrind/m_syswrap/syswrap-x86-linux.c | 19 +++++++++++++++++-- include/vki/vki-scnums-x86-linux.h | 19 +++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 8aebe231ba..16189e30d7 100644 --- a/NEWS +++ b/NEWS @@ -60,6 +60,7 @@ where XXXXXX is the bug number as listed below. 356817 valgrind.h triggers compiler errors on MSVC when defining NVALGRIND 357871 pthread_spin_destroy not properly wrapped 357887 Fix a file handle leak. VG_(fclose) did not close the file +358030 support direct socket calls on x86 32bit (new in linux 4.3) n-i-bz Fix incorrect (or infinite loop) unwind on RHEL7 x86 32 bits n-i-bz massif --pages-as-heap=yes does not report peak caused by mmap+munmap diff --git a/coregrind/m_syswrap/syswrap-x86-linux.c b/coregrind/m_syswrap/syswrap-x86-linux.c index 24d7dc18a9..3c80e6a2b7 100644 --- a/coregrind/m_syswrap/syswrap-x86-linux.c +++ b/coregrind/m_syswrap/syswrap-x86-linux.c @@ -1824,8 +1824,23 @@ static SyscallTableEntry syscall_table[] = { // LIN__(__NR_seccomp, sys_ni_syscall), // 354 LINXY(__NR_getrandom, sys_getrandom), // 355 - LINXY(__NR_memfd_create, sys_memfd_create) // 356 -// LIN__(__NR_bpf, sys_ni_syscall) // 357 + LINXY(__NR_memfd_create, sys_memfd_create), // 356 +// LIN__(__NR_bpf, sys_ni_syscall), // 357 + LINXY(__NR_socket, sys_socket), // 359 + LINXY(__NR_socketpair, sys_socketpair), // 360 + LINX_(__NR_bind, sys_bind), // 361 + LINX_(__NR_connect, sys_connect), // 362 + LINX_(__NR_listen, sys_listen), // 363 + LINXY(__NR_accept4, sys_accept4), // 364 + LINXY(__NR_getsockopt, sys_getsockopt), // 365 + LINX_(__NR_setsockopt, sys_setsockopt), // 366 + LINXY(__NR_getsockname, sys_getsockname), // 367 + LINXY(__NR_getpeername, sys_getpeername), // 368 + LINX_(__NR_sendto, sys_sendto), // 369 + LINX_(__NR_sendmsg, sys_sendmsg), // 370 + LINXY(__NR_recvfrom, sys_recvfrom), // 371 + LINXY(__NR_recvmsg, sys_recvmsg), // 372 + LINX_(__NR_shutdown, sys_shutdown) // 373 }; SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno ) diff --git a/include/vki/vki-scnums-x86-linux.h b/include/vki/vki-scnums-x86-linux.h index 5479b3e24b..a4e75a7da3 100644 --- a/include/vki/vki-scnums-x86-linux.h +++ b/include/vki/vki-scnums-x86-linux.h @@ -392,6 +392,25 @@ #define __NR_getrandom 355 #define __NR_memfd_create 356 #define __NR_bpf 357 +#define __NR_execveat 358 +#define __NR_socket 359 +#define __NR_socketpair 360 +#define __NR_bind 361 +#define __NR_connect 362 +#define __NR_listen 363 +#define __NR_accept4 364 +#define __NR_getsockopt 365 +#define __NR_setsockopt 366 +#define __NR_getsockname 367 +#define __NR_getpeername 368 +#define __NR_sendto 369 +#define __NR_sendmsg 370 +#define __NR_recvfrom 371 +#define __NR_recvmsg 372 +#define __NR_shutdown 373 +#define __NR_userfaultfd 374 +#define __NR_membarrier 375 +#define __NR_mlock2 376 #endif /* __VKI_SCNUMS_X86_LINUX_H */ -- 2.47.2