https://bugs.kde.org/show_bug.cgi?id=449838

--- Comment #5 from Mark Wielaard <m...@klomp.org> ---
(In reply to Daniele from comment #4)
> yes with--track-fds=no valgrind not crash
> 
> for reproduce you need only to call io_uring_queue_init()
> https://pastebin.com/MzFxQGmb

Thanks. I think the solution is simply to not try to associate a name with the
fd returned from io_uring_setup.

diff --git a/coregrind/m_syswrap/syswrap-linux.c
b/coregrind/m_syswrap/syswrap-linux.c
index ac2a9f0c3..792589766 100644
--- a/coregrind/m_syswrap/syswrap-linux.c
+++ b/coregrind/m_syswrap/syswrap-linux.c
@@ -13206,7 +13206,7 @@ POST(sys_io_uring_setup)
       SET_STATUS_Failure( VKI_EMFILE );
    } else {
       if (VG_(clo_track_fds))
-         ML_(record_fd_open_with_given_name)(tid, RES, (HChar*)(Addr)ARG1);
+         ML_(record_fd_open_nameless)(tid, RES);
       POST_MEM_WRITE(ARG2 + offsetof(struct vki_io_uring_params, sq_off),
                      sizeof(struct vki_io_sqring_offsets) +
                      sizeof(struct vki_io_cqring_offsets));

I don't know io_uring really well. But I assume there isn't really a name
(file) associated with the io_uring fds?

With the above the example program run under valgrind with --track-fds=yes
simply reports:

$ ./vg-in-place -q --track-fds=yes ./t
==1481833== FILE DESCRIPTORS: 4 open (3 std) at exit.
==1481833== Open file descriptor 3:
==1481833==    at 0x4978ECD: syscall (syscall.S:38)
==1481833==    by 0x4869921: UnknownInlinedFun (syscall.c:48)
==1481833==    by 0x4869921: io_uring_queue_init_params (setup.c:143)
==1481833==    by 0x48699CB: io_uring_queue_init (setup.c:168)
==1481833==    by 0x401169: main (t.c:19)

Which I assume is ok without a filename associated with the file descriptor?

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to