]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Support new faccessat2 linux syscall (439)
authorMark Wielaard <mark@klomp.org>
Fri, 16 Oct 2020 00:55:06 +0000 (02:55 +0200)
committerMark Wielaard <mark@klomp.org>
Fri, 16 Oct 2020 00:55:06 +0000 (02:55 +0200)
faccessat2 is a new syscall in linux 5.8 and will be used by glibc 2.33.
faccessat2 is simply faccessat with a new flag argument. It has
a common number across all linux arches.

https://bugs.kde.org/427787

14 files changed:
NEWS
coregrind/m_syswrap/priv_syswrap-linux.h
coregrind/m_syswrap/syswrap-amd64-linux.c
coregrind/m_syswrap/syswrap-arm-linux.c
coregrind/m_syswrap/syswrap-arm64-linux.c
coregrind/m_syswrap/syswrap-linux.c
coregrind/m_syswrap/syswrap-mips32-linux.c
coregrind/m_syswrap/syswrap-mips64-linux.c
coregrind/m_syswrap/syswrap-nanomips-linux.c
coregrind/m_syswrap/syswrap-ppc32-linux.c
coregrind/m_syswrap/syswrap-ppc64-linux.c
coregrind/m_syswrap/syswrap-s390x-linux.c
coregrind/m_syswrap/syswrap-x86-linux.c
include/vki/vki-scnums-shared-linux.h

diff --git a/NEWS b/NEWS
index 460eea232d009359718b0d55a97a5db8cdeee017..8025a3f9fdfde7cabd02330a2264108cd56bec96 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -52,6 +52,7 @@ n-i-bz  helgrind: If hg_cli__realloc fails, return NULL.
 423195  PPC ISA 3.1 support is missing, part 1
 425232  PPC ISA 3.1 support is missing, part 2
 426123  PPC ISA 3.1 support is missing, part 3
+427787  Support new faccessat2 linux syscall (439)
 
 Release 3.16.1 (?? June 2020)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
index eb0b320caa9d0a2a78b2ec4497bebd5ac7fbaf15..110f7c832dbc1c90495fbbbe34cca06cf63f782c 100644 (file)
@@ -180,6 +180,7 @@ DECL_TEMPLATE(linux, sys_symlinkat);
 DECL_TEMPLATE(linux, sys_readlinkat);
 DECL_TEMPLATE(linux, sys_fchmodat);
 DECL_TEMPLATE(linux, sys_faccessat);
+DECL_TEMPLATE(linux, sys_faccessat2);
 DECL_TEMPLATE(linux, sys_utimensat);
 DECL_TEMPLATE(linux, sys_name_to_handle_at);
 DECL_TEMPLATE(linux, sys_open_by_handle_at);
index d6f3eb91090b338537813c8ed05f69815570e3a3..45e1f3d1bb17571c134c1cd7ac9d7d6af30f42a5 100644 (file)
@@ -873,6 +873,8 @@ static SyscallTableEntry syscall_table[] = {
    LINXY(__NR_io_uring_setup,    sys_io_uring_setup),    // 425
    LINXY(__NR_io_uring_enter,    sys_io_uring_enter),    // 426
    LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
+
+   LINX_(__NR_faccessat2,       sys_faccessat2),        // 439
 };
 
 SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
index 70700e53f7a48ea72943903d4a5461b568046b10..978aedbe6923ffc51589532726db0fd7fd6086b1 100644 (file)
@@ -1046,6 +1046,8 @@ static SyscallTableEntry syscall_main_table[] = {
    LINXY(__NR_futex_time64,      sys_futex_time64),     // 422
    LINXY(__NR_sched_rr_get_interval_time64,
          sys_sched_rr_get_interval_time64),             // 423
+
+   LINX_(__NR_faccessat2,    sys_faccessat2),           // 439
 };
 
 
index acca02442332274ffaf18ab09503ad35db2a475e..051d84989b33c00739aebcaf389a9dba5666bcbb 100644 (file)
@@ -825,6 +825,8 @@ static SyscallTableEntry syscall_main_table[] = {
    //   (__NR_pkey_free,         sys_ni_syscall),        // 290
 
    LINXY(__NR_statx,             sys_statx),             // 397
+
+   LINX_(__NR_faccessat2,        sys_faccessat2),        // 439
 };
 
 
index 3f488795a655bed3cbae75eab022cfd44ec59477..41849873e6ca7df94d3a1cb8ccfdc27b2860c632 100644 (file)
@@ -5988,6 +5988,15 @@ PRE(sys_faccessat)
    PRE_MEM_RASCIIZ( "faccessat(pathname)", ARG2 );
 }
 
+PRE(sys_faccessat2)
+{
+   PRINT("sys_faccessat2 ( %ld, %#" FMT_REGWORD "x(%s), %ld, %ld )",
+         SARG1, ARG2, (HChar*)(Addr)ARG2, SARG3, SARG4);
+   PRE_REG_READ4(long, "faccessat2",
+                 int, dfd, const char *, pathname, int, mode, int, flags);
+   PRE_MEM_RASCIIZ( "faccessat2(pathname)", ARG2 );
+}
+
 PRE(sys_name_to_handle_at)
 {
    PRINT("sys_name_to_handle_at ( %ld, %#" FMT_REGWORD "x(%s), %#"
index 5face576be4e06532c249f844115c5baff699caf..f35fb8bbb4afa980e4bed18b2d8474620dc4b1ea 100644 (file)
@@ -1131,6 +1131,8 @@ static SyscallTableEntry syscall_main_table[] = {
    LINXY(__NR_futex_time64,            sys_futex_time64),            // 422
    LINXY(__NR_sched_rr_get_interval_time64,
          sys_sched_rr_get_interval_time64),                          // 423
+
+   LINX_ (__NR_faccessat2,             sys_faccessat2),              // 439
 };
 
 SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno)
index c64911a50ba5143be56ed50b8f7c9f67e3ecffe9..bd260679c4db0922a850cbfff38ff4896312058a 100644 (file)
@@ -812,6 +812,7 @@ static SyscallTableEntry syscall_main_table[] = {
    LINX_ (__NR_syncfs, sys_syncfs),
    LINXY (__NR_statx, sys_statx),
    LINX_ (__NR_setns, sys_setns),
+   LINX_ (__NR_faccessat2, sys_faccessat2),
 };
 
 SyscallTableEntry * ML_(get_linux_syscall_entry) ( UInt sysno )
index 7ceecb6daf1e6a8d70dd861da372e4fd7d7b984c..a904745ab1c9cf66e24ed52638925087b1b313fa 100644 (file)
@@ -821,6 +821,7 @@ static SyscallTableEntry syscall_main_table[] = {
    //    (__NR_pkey_mprotect,          sys_ni_syscall),
    //    (__NR_pkey_alloc,             sys_ni_syscall),
    //    (__NR_pkey_free,              sys_ni_syscall),
+   LINX_ (__NR_faccessat2,             sys_faccessat2),
 };
 
 SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno)
index c19cb9e0ee3413e02e473510f97c6c255ed73de2..6ddd482d92031c843bd477982bb2ccb9c5432331 100644 (file)
@@ -1049,6 +1049,8 @@ static SyscallTableEntry syscall_table[] = {
    LINXY(__NR_futex_time64,      sys_futex_time64),     // 422
    LINXY(__NR_sched_rr_get_interval_time64,
          sys_sched_rr_get_interval_time64),             // 423
+
+   LINX_(__NR_faccessat2,        sys_faccessat2),       // 439
 };
 
 SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
index b6422a7655167176ec2eda5f817940de2b283aa6..7026e4ac6d2e0e2cd49bb94599c2921fea0816cb 100644 (file)
@@ -1014,6 +1014,8 @@ static SyscallTableEntry syscall_table[] = {
    LINX_(__NR_pwritev2,          sys_pwritev2),         // 381
 
    LINXY(__NR_statx,             sys_statx),            // 383
+
+   LINX_(__NR_faccessat2,        sys_faccessat2),       // 439
 };
 
 SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
index 3427fee16dabff86054f6bb4bc5dca58506cfc9b..c5e4bb9570250dd4cfbf6b1371efcdeed0cc50cd 100644 (file)
@@ -859,6 +859,8 @@ static SyscallTableEntry syscall_table[] = {
    LINX_(__NR_pwritev2, sys_pwritev2),                                // 377
 
    LINXY(__NR_statx, sys_statx),                                      // 379
+
+   LINX_(__NR_faccessat2,  sys_faccessat2),                           // 439
 };
 
 SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
index b59d96f3758b0292cc0bb98c081fe1cdc21be8b1..67d866497d999eb2144f7cca1ad0fd3513b26de4 100644 (file)
@@ -1644,6 +1644,8 @@ static SyscallTableEntry syscall_table[] = {
    LINXY(__NR_io_uring_setup,    sys_io_uring_setup),   // 425
    LINXY(__NR_io_uring_enter,    sys_io_uring_enter),   // 426
    LINXY(__NR_io_uring_register, sys_io_uring_register),// 427
+
+   LINX_(__NR_faccessat2,       sys_faccessat2),       // 439
 };
 
 SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
index 6221d5a819c3a2e93816bf75c8ec41adbbd799e9..c8bc31b4b3fb26e5f0a5d61e3b981558609f1508 100644 (file)
@@ -39,4 +39,6 @@
 #define __NR_fsmount           432
 #define __NR_fspick            433
 
+#define __NR_faccessat2                439
+
 #endif