From 9aaa41b23d506ae8cad5bdadf66a5f1af1ee1a02 Mon Sep 17 00:00:00 2001 From: Ivo Raisr Date: Thu, 15 Oct 2015 09:37:14 +0000 Subject: [PATCH] Solaris syscall: Enable fchdir(120) - generic. Provide scalar tests as well. Fixes BZ #353917. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15707 --- NEWS | 1 + coregrind/m_syswrap/syswrap-solaris.c | 1 + include/vki/vki-scnums-solaris.h | 2 +- memcheck/tests/solaris/scalar.c | 3 ++- memcheck/tests/solaris/scalar.stderr.exp | 6 ++++++ 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index b48a1b73ef..96d6be65da 100644 --- a/NEWS +++ b/NEWS @@ -36,6 +36,7 @@ where XXXXXX is the bug number as listed below. 353370 don't advertise RDRAND in cpuid for Core-i7-4910-like avx2 machine 353398 WARNING: unhandled amd64-solaris syscall: 207 353680 s390x: Crash with certain glibc versions due to non-implemented TBEGIN +353917 unhandled amd64-solaris syscall fchdir(120) diff --git a/coregrind/m_syswrap/syswrap-solaris.c b/coregrind/m_syswrap/syswrap-solaris.c index 6ec33a36dc..2c4e0fe3c6 100644 --- a/coregrind/m_syswrap/syswrap-solaris.c +++ b/coregrind/m_syswrap/syswrap-solaris.c @@ -10325,6 +10325,7 @@ static SyscallTableEntry syscall_table[] = { SOLX_(__NR_mmap, sys_mmap), /* 115 */ GENXY(__NR_mprotect, sys_mprotect), /* 116 */ GENXY(__NR_munmap, sys_munmap), /* 117 */ + GENX_(__NR_fchdir, sys_fchdir), /* 120 */ GENXY(__NR_readv, sys_readv), /* 121 */ GENX_(__NR_writev, sys_writev), /* 122 */ #if defined(SOLARIS_UUIDSYS_SYSCALL) diff --git a/include/vki/vki-scnums-solaris.h b/include/vki/vki-scnums-solaris.h index dcc5b32359..be886c9e2f 100644 --- a/include/vki/vki-scnums-solaris.h +++ b/include/vki/vki-scnums-solaris.h @@ -174,7 +174,7 @@ #define __NR_munmap SYS_munmap //#define __NR_fpathconf SYS_fpathconf //#define __NR_vfork SYS_vfork -//#define __NR_fchdir SYS_fchdir +#define __NR_fchdir SYS_fchdir #define __NR_readv SYS_readv #define __NR_writev SYS_writev #if defined(SOLARIS_UUIDSYS_SYSCALL) diff --git a/memcheck/tests/solaris/scalar.c b/memcheck/tests/solaris/scalar.c index e2693154dc..70ea81b20f 100644 --- a/memcheck/tests/solaris/scalar.c +++ b/memcheck/tests/solaris/scalar.c @@ -1939,7 +1939,8 @@ int main(void) /* XXX Missing wrapper. */ /* SYS_fchdir 120 */ - /* XXX Missing wrapper. */ + GO(SYS_fchdir, "1s 0m"); + SY(SYS_fchdir, x0 - 1); FAILx(EBADF); /* SYS_readv 121 */ GO(SYS_readv, "3s 1m"); diff --git a/memcheck/tests/solaris/scalar.stderr.exp b/memcheck/tests/solaris/scalar.stderr.exp index 241f283e9c..9cce0b0cc1 100644 --- a/memcheck/tests/solaris/scalar.stderr.exp +++ b/memcheck/tests/solaris/scalar.stderr.exp @@ -2146,6 +2146,12 @@ Syscall param munmap(start) contains uninitialised byte(s) Syscall param munmap(length) contains uninitialised byte(s) ... +--------------------------------------------------------- +120: SYS_fchdir 1s 0m +--------------------------------------------------------- +Syscall param fchdir(fd) contains uninitialised byte(s) + ... + --------------------------------------------------------- 121: SYS_readv 3s 1m --------------------------------------------------------- -- 2.47.2