504919 Hide "client tried to modify addresses" warnings when -q (quiet) set
504936 Add FreeBSD amd64 sysarch subcommands AMD64_SET_TLSBASE and
AMD64_GET_TLSBASE
+505228 Wrap linux specific mseal syscall
To see details of a given bug, visit
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
// Since Linux 6.6
DECL_TEMPLATE(linux, sys_fchmodat2);
+// Since Linux 6.10
+DECL_TEMPLATE(linux, sys_mseal);
+
/* ---------------------------------------------------------------------
Wrappers for sockets and ipc-ery. These are split into standalone
procedures because x86-linux hides them inside multiplexors
LINXY(__NR_cachestat, sys_cachestat), // 451
LINX_(__NR_fchmodat2, sys_fchmodat2), // 452
+ LINX_(__NR_mseal, sys_mseal), // 462
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
LINXY(__NR_cachestat, sys_cachestat), // 451
LINX_(__NR_fchmodat2, sys_fchmodat2), // 452
+ LINX_(__NR_mseal, sys_mseal), // 462
};
LINXY(__NR_cachestat, sys_cachestat), // 451
LINX_(__NR_fchmodat2, sys_fchmodat2), // 452
+ LINX_(__NR_mseal, sys_mseal), // 462
};
PRE_REG_READ1(int, "membarrier", int, flags);
}
+PRE(sys_mseal)
+{
+ /* int mseal(void *addr, size_t len, unsigned long flags) */
+ PRINT("sys_mseal ( %#" FMT_REGWORD "x, %" FMT_REGWORD "u, %#" FMT_REGWORD "x, )", ARG1, ARG2, ARG3);
+ PRE_REG_READ3(int, "mseal", void *, addr, vki_size_t, len, int, flags);
+ if (!ML_(valid_client_addr)(ARG1, ARG2, tid, "mseal"))
+ SET_STATUS_Failure(VKI_ENOMEM);
+}
+
PRE(sys_syncfs)
{
*flags |= SfMayBlock;
LINXY(__NR_cachestat, sys_cachestat), // 451
LINX_(__NR_fchmodat2, sys_fchmodat2), // 452
+ LINX_(__NR_mseal, sys_mseal), // 462
};
SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno)
LINXY (__NR_cachestat, sys_cachestat),
LINX_ (__NR_fchmodat2, sys_fchmodat2),
LINXY (__NR_userfaultfd, sys_userfaultfd),
+ LINX_ (__NR_mseal, sys_mseal),
};
SyscallTableEntry * ML_(get_linux_syscall_entry) ( UInt sysno )
LINX_ (__NR_landlock_restrict_self, sys_landlock_restrict_self),
LINXY (__NR_cachestat, sys_cachestat),
LINX_ (__NR_fchmodat2, sys_fchmodat2),
+ LINX_ (__NR_mseal, sys_mseal),
};
SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno)
LINXY(__NR_cachestat, sys_cachestat), // 451
LINX_ (__NR_fchmodat2, sys_fchmodat2), // 452
+ LINX_ (__NR_mseal, sys_mseal), // 462
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
LINXY (__NR_cachestat, sys_cachestat), // 451
LINX_ (__NR_fchmodat2, sys_fchmodat2), // 452
+ LINX_ (__NR_mseal, sys_mseal), // 462
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
LINXY(__NR_memfd_secret, sys_memfd_secret), /* 447 */
LINXY(__NR_cachestat, sys_cachestat), /* 451 */
LINX_(__NR_fchmodat2, sys_fchmodat2), /* 452 */
+ LINX_(__NR_mseal, sys_mseal), /* 462 */
};
SyscallTableEntry* ML_(get_linux_syscall_entry)(UInt sysno)
LINXY (__NR_cachestat, sys_cachestat), // 451
LINX_ (__NR_fchmodat2, sys_fchmodat2), // 452
+ LINX_ (__NR_mseal, sys_mseal), // 462
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
LINXY(__NR_cachestat, sys_cachestat), // 451
LINX_(__NR_fchmodat2, sys_fchmodat2), // 452
+ LINX_(__NR_mseal, sys_mseal), // 462
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
#define __NR_set_mempolicy_home_node (__NR_Linux + 450)
#define __NR_cachestat (__NR_Linux + 451)
#define __NR_fchmodat2 (__NR_Linux + 452)
+#define __NR_mseal (__NR_Linux + 462)
/*
* Offset of the last Linux o32 flavoured syscall
*/
#define __NR_lsm_get_self_attr (__NR_Linux + 459)
#define __NR_lsm_set_self_attr (__NR_Linux + 460)
#define __NR_lsm_list_modules (__NR_Linux + 461)
+#define __NR_mseal (__NR_Linux + 462)
#elif defined(VGABI_N32)
#define __NR_cachestat 451
#define __NR_fchmodat2 452
+#define __NR_mseal 462
#endif