From: Ivo Raisr Date: Thu, 15 Oct 2015 09:37:14 +0000 (+0000) Subject: Solaris syscall: Enable fchdir(120) - generic. X-Git-Tag: svn/VALGRIND_3_12_0~316 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9aaa41b23d506ae8cad5bdadf66a5f1af1ee1a02;p=thirdparty%2Fvalgrind.git Solaris syscall: Enable fchdir(120) - generic. Provide scalar tests as well. Fixes BZ #353917. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15707 --- 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 ---------------------------------------------------------