You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
1
(2) |
2
(1) |
3
|
4
|
|
5
|
6
(2) |
7
(1) |
8
|
9
(1) |
10
(1) |
11
(2) |
|
12
(1) |
13
(3) |
14
(5) |
15
|
16
|
17
(4) |
18
|
|
19
(4) |
20
|
21
|
22
|
23
(2) |
24
(1) |
25
|
|
26
|
27
|
28
|
29
|
30
|
31
|
|
|
From: Philippe W. <phi...@so...> - 2018-08-11 14:02:02
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=3d25f6acab6ab6a66ed1705264dbf45833331ef5 commit 3d25f6acab6ab6a66ed1705264dbf45833331ef5 Author: Philippe Waroquiers <phi...@sk...> Date: Sat Aug 11 16:00:43 2018 +0200 Announce in NEWS the fix for unhandled amd64-linux syscall: 332 (statx) Fix was pushed as 8bc2b6fd26070f9f4d3f067910eb3e3b5e662fd7 Diff: --- NEWS | 1 + 1 file changed, 1 insertion(+) diff --git a/NEWS b/NEWS index 260ee9a..e1bb4ad 100644 --- a/NEWS +++ b/NEWS @@ -127,6 +127,7 @@ where XXXXXX is the bug number as listed below. 390471 suppression by specification of source-file line number 390723 make xtree dump files world wide readable, similar to log files 391861 Massif Assertion 'n_ips >= 1 && n_ips <= VG_(clo_backtrace_size)' +392118 unhandled amd64-linux syscall: 332 (statx) 392449 callgrind not clearing the number of calls properly 393017 Add missing support for xsmaxcdp instruction, bug fixes for xsmincdp, lxssp, stxssp and stxvl instructions. |
|
From: Philippe W. <phi...@so...> - 2018-08-11 13:59:18
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=8bc2b6fd26070f9f4d3f067910eb3e3b5e662fd7 commit 8bc2b6fd26070f9f4d3f067910eb3e3b5e662fd7 Author: Philippe Waroquiers <phi...@sk...> Date: Sat Aug 11 15:56:56 2018 +0200 Fix 392118 - unhandled amd64-linux syscall: 332 (statx) Code patch provided by Mattias Andrée Added a regression test to (somewhat) test stat and statx. Tested on amd64 only. Diff: --- .gitignore | 1 + coregrind/m_syswrap/priv_syswrap-linux.h | 3 ++ coregrind/m_syswrap/syswrap-amd64-linux.c | 5 ++- coregrind/m_syswrap/syswrap-arm-linux.c | 4 ++- coregrind/m_syswrap/syswrap-arm64-linux.c | 2 ++ coregrind/m_syswrap/syswrap-linux.c | 16 +++++++++ coregrind/m_syswrap/syswrap-mips32-linux.c | 2 ++ coregrind/m_syswrap/syswrap-ppc32-linux.c | 4 ++- coregrind/m_syswrap/syswrap-ppc64-linux.c | 4 ++- coregrind/m_syswrap/syswrap-x86-linux.c | 2 ++ include/vki/vki-linux.h | 38 ++++++++++++++++++++ memcheck/tests/linux/Makefile.am | 2 ++ memcheck/tests/linux/sys-statx.c | 56 ++++++++++++++++++++++++++++++ memcheck/tests/linux/sys-statx.stderr.exp | 10 ++++++ memcheck/tests/linux/sys-statx.vgtest | 1 + 15 files changed, 146 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 72b7c3d..fc22c94 100644 --- a/.gitignore +++ b/.gitignore @@ -1090,6 +1090,7 @@ /memcheck/tests/linux/stack_changes /memcheck/tests/linux/stack_switch /memcheck/tests/linux/syscalls-2007 +/memcheck/tests/linux/sys-statx /memcheck/tests/linux/syslog-syscall /memcheck/tests/linux/timerfd-syscall /memcheck/tests/linux/proc-auxv diff --git a/coregrind/m_syswrap/priv_syswrap-linux.h b/coregrind/m_syswrap/priv_syswrap-linux.h index 65704cd..296ef65 100644 --- a/coregrind/m_syswrap/priv_syswrap-linux.h +++ b/coregrind/m_syswrap/priv_syswrap-linux.h @@ -295,6 +295,9 @@ DECL_TEMPLATE(linux, sys_syncfs); DECL_TEMPLATE(linux, sys_membarrier); +// Linux-specific (new in Linux 4.11) +DECL_TEMPLATE(linux, sys_statx); + /* --------------------------------------------------------------------- Wrappers for sockets and ipc-ery. These are split into standalone procedures because x86-linux hides them inside multiplexors diff --git a/coregrind/m_syswrap/syswrap-amd64-linux.c b/coregrind/m_syswrap/syswrap-amd64-linux.c index 407af7f..9255e7b 100644 --- a/coregrind/m_syswrap/syswrap-amd64-linux.c +++ b/coregrind/m_syswrap/syswrap-amd64-linux.c @@ -846,7 +846,10 @@ static SyscallTableEntry syscall_table[] = { LINXY(__NR_memfd_create, sys_memfd_create), // 319 // LIN__(__NR_kexec_file_load, sys_ni_syscall), // 320 -// LIN__(__NR_bpf, sys_ni_syscall) // 321 +// LIN__(__NR_bpf, sys_ni_syscall), // 321 + + + LINXY(__NR_statx, sys_statx), // 332 LINX_(__NR_membarrier, sys_membarrier), // 324 }; diff --git a/coregrind/m_syswrap/syswrap-arm-linux.c b/coregrind/m_syswrap/syswrap-arm-linux.c index 4ae4e89..9f1bdab 100644 --- a/coregrind/m_syswrap/syswrap-arm-linux.c +++ b/coregrind/m_syswrap/syswrap-arm-linux.c @@ -1014,7 +1014,9 @@ static SyscallTableEntry syscall_main_table[] = { LINX_(__NR_renameat2, sys_renameat2), // 382 LINXY(__NR_getrandom, sys_getrandom), // 384 - LINXY(__NR_memfd_create, sys_memfd_create) // 385 + LINXY(__NR_memfd_create, sys_memfd_create), // 385 + + LINXY(__NR_statx, sys_statx), // 397 }; diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c index 24a6493..9ef54b4 100644 --- a/coregrind/m_syswrap/syswrap-arm64-linux.c +++ b/coregrind/m_syswrap/syswrap-arm64-linux.c @@ -821,6 +821,8 @@ static SyscallTableEntry syscall_main_table[] = { // (__NR_pkey_mprotect, sys_ni_syscall), // 288 // (__NR_pkey_alloc, sys_ni_syscall), // 289 // (__NR_pkey_free, sys_ni_syscall), // 290 + + LINXY(__NR_statx, sys_statx), // 397 }; diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c index 2336c29..bd7d447 100644 --- a/coregrind/m_syswrap/syswrap-linux.c +++ b/coregrind/m_syswrap/syswrap-linux.c @@ -3659,6 +3659,22 @@ PRE(sys_syncfs) PRE_REG_READ1(long, "syncfs", unsigned int, fd); } +PRE(sys_statx) +{ + FUSE_COMPATIBLE_MAY_BLOCK(); + PRINT("sys_statx ( %ld, %#" FMT_REGWORD "x(%s), %ld, %ld, %#" FMT_REGWORD "x )", + ARG1,ARG2,(char*)(Addr)ARG2,ARG3,ARG4,ARG5); + PRE_REG_READ5(long, "statx", + int, dirfd, char *, file_name, int, flags, + unsigned int, mask, struct statx *, buf); + PRE_MEM_RASCIIZ( "statx(file_name)", ARG2 ); + PRE_MEM_WRITE( "statx(buf)", ARG5, sizeof(struct vki_statx) ); +} +POST(sys_statx) +{ + POST_MEM_WRITE( ARG5, sizeof(struct vki_statx) ); +} + /* --------------------------------------------------------------------- utime wrapper ------------------------------------------------------------------ */ diff --git a/coregrind/m_syswrap/syswrap-mips32-linux.c b/coregrind/m_syswrap/syswrap-mips32-linux.c index c754987..89cf126 100644 --- a/coregrind/m_syswrap/syswrap-mips32-linux.c +++ b/coregrind/m_syswrap/syswrap-mips32-linux.c @@ -1065,6 +1065,8 @@ static SyscallTableEntry syscall_main_table[] = { LINXY(__NR_memfd_create, sys_memfd_create), // 354 //.. LINX_(__NR_membarrier, sys_membarrier), // 358 + //.. + LINXY(__NR_statx, sys_statx) // 366 }; SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno) diff --git a/coregrind/m_syswrap/syswrap-ppc32-linux.c b/coregrind/m_syswrap/syswrap-ppc32-linux.c index d150602..f812f1f 100644 --- a/coregrind/m_syswrap/syswrap-ppc32-linux.c +++ b/coregrind/m_syswrap/syswrap-ppc32-linux.c @@ -1019,7 +1019,9 @@ static SyscallTableEntry syscall_table[] = { LINX_(__NR_process_vm_writev, sys_process_vm_writev),// 352 LINXY(__NR_getrandom, sys_getrandom), // 359 - LINXY(__NR_memfd_create, sys_memfd_create) // 360 + LINXY(__NR_memfd_create, sys_memfd_create), // 360 + + LINXY(__NR_statx, sys_statx), // 383 }; SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno ) diff --git a/coregrind/m_syswrap/syswrap-ppc64-linux.c b/coregrind/m_syswrap/syswrap-ppc64-linux.c index 46bb317..2d699a4 100644 --- a/coregrind/m_syswrap/syswrap-ppc64-linux.c +++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c @@ -937,7 +937,9 @@ static SyscallTableEntry syscall_table[] = { LINX_(__NR_renameat2, sys_renameat2), // 357 LINXY(__NR_getrandom, sys_getrandom), // 359 - LINXY(__NR_memfd_create, sys_memfd_create) // 360 + LINXY(__NR_memfd_create, sys_memfd_create), // 360 + + LINXY(__NR_statx, sys_statx), // 383 }; SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno ) diff --git a/coregrind/m_syswrap/syswrap-x86-linux.c b/coregrind/m_syswrap/syswrap-x86-linux.c index 11bb13d..ea4f354 100644 --- a/coregrind/m_syswrap/syswrap-x86-linux.c +++ b/coregrind/m_syswrap/syswrap-x86-linux.c @@ -1606,6 +1606,8 @@ static SyscallTableEntry syscall_table[] = { LINXY(__NR_recvmsg, sys_recvmsg), // 372 LINX_(__NR_shutdown, sys_shutdown), // 373 + LINXY(__NR_statx, sys_statx), // 383 + /* Explicitly not supported on i386 yet. */ GENX_(__NR_arch_prctl, sys_ni_syscall) // 384 }; diff --git a/include/vki/vki-linux.h b/include/vki/vki-linux.h index 7072080..1beeebb 100644 --- a/include/vki/vki-linux.h +++ b/include/vki/vki-linux.h @@ -1381,6 +1381,44 @@ struct vki_robust_list_head { #define VKI_S_IWOTH 00002 #define VKI_S_IXOTH 00001 +struct vki_statx_timestamp { + __vki_s64 tv_sec; + __vki_u32 tv_nsec; + __vki_s32 __reserved; +}; + +struct vki_statx { + /* 0x00 */ + __vki_u32 stx_mask; /* What results were written [uncond] */ + __vki_u32 stx_blksize; /* Preferred general I/O size [uncond] */ + __vki_u64 stx_attributes; /* Flags conveying information about the file [uncond] */ + /* 0x10 */ + __vki_u32 stx_nlink; /* Number of hard links */ + __vki_u32 stx_uid; /* User ID of owner */ + __vki_u32 stx_gid; /* Group ID of owner */ + __vki_u16 stx_mode; /* File mode */ + __vki_u16 __spare0[1]; + /* 0x20 */ + __vki_u64 stx_ino; /* Inode number */ + __vki_u64 stx_size; /* File size */ + __vki_u64 stx_blocks; /* Number of 512-byte blocks allocated */ + __vki_u64 stx_attributes_mask; /* Mask to show what's supported in stx_attributes */ + /* 0x40 */ + struct vki_statx_timestamp stx_atime; /* Last access time */ + struct vki_statx_timestamp stx_btime; /* File creation time */ + struct vki_statx_timestamp stx_ctime; /* Last attribute change time */ + struct vki_statx_timestamp stx_mtime; /* Last data modification time */ + /* 0x80 */ + __vki_u32 stx_rdev_major; /* Device ID of special file [if bdev/cdev] */ + __vki_u32 stx_rdev_minor; + __vki_u32 stx_dev_major; /* ID of device containing file [uncond] */ + __vki_u32 stx_dev_minor; + /* 0x90 */ + __vki_u64 __spare2[14]; /* Spare space for future expansion */ + /* 0x100 */ +}; + + //---------------------------------------------------------------------- // From linux-2.6.8.1/include/linux/dirent.h //---------------------------------------------------------------------- diff --git a/memcheck/tests/linux/Makefile.am b/memcheck/tests/linux/Makefile.am index 5f49a3f..d7515d9 100644 --- a/memcheck/tests/linux/Makefile.am +++ b/memcheck/tests/linux/Makefile.am @@ -21,6 +21,7 @@ EXTRA_DIST = \ syscalls-2007.vgtest syscalls-2007.stderr.exp \ syslog-syscall.vgtest syslog-syscall.stderr.exp \ sys-openat.vgtest sys-openat.stderr.exp sys-openat.stdout.exp \ + sys-statx.vgtest sys-statx.stderr.exp \ timerfd-syscall.vgtest timerfd-syscall.stderr.exp \ with-space.stderr.exp with-space.stdout.exp with-space.vgtest \ proc-auxv.vgtest proc-auxv.stderr.exp getregset.vgtest \ @@ -40,6 +41,7 @@ check_PROGRAMS = \ stack_switch \ syscalls-2007 \ syslog-syscall \ + sys-statx \ timerfd-syscall \ proc-auxv diff --git a/memcheck/tests/linux/sys-statx.c b/memcheck/tests/linux/sys-statx.c new file mode 100644 index 0000000..7b6ee34 --- /dev/null +++ b/memcheck/tests/linux/sys-statx.c @@ -0,0 +1,56 @@ +/* Test (somewhat) stats and stat. */ +#define _GNU_SOURCE +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> +#include <fcntl.h> +#include <assert.h> +#include <string.h> +#include <sys/syscall.h> +#include <linux/stat.h> +#include <errno.h> + +int check_stat2; + +#define field(fieldname,s) s->st_##fieldname +#if defined(__NR_statx) +#define checkfield(fieldname) \ + assert(!check_stat2 || stat1.st_##fieldname == stat2.stx_##fieldname) +#else +#define checkfield(fieldname) \ + assert(!check_stat2 || stat1.st_##fieldname == stat2.st_##fieldname) +#endif + +int main (void) +{ + struct stat stat1; + + memset(&stat1, 0x55, sizeof(stat1)); + + assert (stat ("/tmp", &stat1) == 0); +#if defined(__NR_statx) + struct statx stat2; + memset(&stat2, 0x22, sizeof(stat2)); + if (syscall (__NR_statx, 0, "/tmp", 0, STATX_ALL, &stat2) == 0) + check_stat2 = 1; + else { + if (errno == ENOSYS) + check_stat2 = 0; // Defined but not provided by kernel. + else + check_stat2 = 1; // Probably better fail ... + } +#else + struct stat stat2; + check_stat2 = 1; + memset(&stat2, 0x22, sizeof(stat2)); + assert (stat ("/tmp", &stat2) == 0); +#endif + + checkfield(nlink); + checkfield(uid); + checkfield(gid); + checkfield(mode); + checkfield(ino); + + return 0; +} diff --git a/memcheck/tests/linux/sys-statx.stderr.exp b/memcheck/tests/linux/sys-statx.stderr.exp new file mode 100644 index 0000000..c22dd7f --- /dev/null +++ b/memcheck/tests/linux/sys-statx.stderr.exp @@ -0,0 +1,10 @@ + + +HEAP SUMMARY: + in use at exit: 0 bytes in 0 blocks + total heap usage: 0 allocs, 0 frees, 0 bytes allocated + +For a detailed leak analysis, rerun with: --leak-check=full + +For counts of detected and suppressed errors, rerun with: -v +ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/memcheck/tests/linux/sys-statx.vgtest b/memcheck/tests/linux/sys-statx.vgtest new file mode 100644 index 0000000..e4864ac --- /dev/null +++ b/memcheck/tests/linux/sys-statx.vgtest @@ -0,0 +1 @@ +prog: sys-statx |