From: Mark W. <ma...@so...> - 2024-08-30 11:53:27
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=de408f75bf28d76a0016325b75f14be45631472a commit de408f75bf28d76a0016325b75f14be45631472a Author: Miao Wang <sha...@gm...> Date: Mon Aug 26 22:08:43 2024 +0800 sys_statx: support for statx(fd, NULL, AT_EMPTY_PATH) statx(fd, NULL, AT_EMPTY_PATH) is supported since Linux 6.11 and this patch adds the support to valgrind, so that it won't complain when NULL is used as |filename| and |flags| includes AT_EMPTY_PATH. Ref: commit 0ef625bba6fb ("vfs: support statx(..., NULL, AT_EMPTY_PATH, ...)") Signed-off-by: Miao Wang <sha...@gm...> Diff: --- coregrind/m_syswrap/syswrap-linux.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c index 9f3c51c179..4533855998 100644 --- a/coregrind/m_syswrap/syswrap-linux.c +++ b/coregrind/m_syswrap/syswrap-linux.c @@ -4209,8 +4209,12 @@ PRE(sys_statx) // in which it passes NULL for both filename and buf, and then looks at the // return value, so as to determine whether or not this syscall is supported. Bool both_filename_and_buf_are_null = ARG2 == 0 && ARG5 == 0; + Bool statx_null_path = (ARG2 == 0) && (ARG3 & VKI_AT_EMPTY_PATH); if (!both_filename_and_buf_are_null) { - PRE_MEM_RASCIIZ( "statx(filename)", ARG2 ); + // Since Linux 6.11, the kernel allows passing a NULL filename when + // the AT_EMPTY_PATH flag is set. + if (!statx_null_path) + PRE_MEM_RASCIIZ( "statx(filename)", ARG2 ); PRE_MEM_WRITE( "statx(buf)", ARG5, sizeof(struct vki_statx) ); } } |