From d72befae1e06cdef3c3a63fbf0cbb6fa8c538c06 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Thu, 18 Jul 2024 21:50:19 -0400 Subject: [PATCH] kernel/fd: Create the SyscallRestartWrapper before calling common_vector_io. Otherwise, it seems compiler will optimize the assign operation into a call of the first constructor, meaning the thread's syscall flag won't be set properly. Fixes #18951. --- src/system/kernel/fs/fd.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/system/kernel/fs/fd.cpp b/src/system/kernel/fs/fd.cpp index cc21eac5f2..edfe26af3a 100644 --- a/src/system/kernel/fs/fd.cpp +++ b/src/system/kernel/fs/fd.cpp @@ -855,8 +855,8 @@ common_user_vector_io(int fd, off_t pos, const iovec* userVecs, size_t count, if (error != B_OK) return error; - SyscallRestartWrapper result = common_vector_io(fd, pos, - vecs, count, write, false); + SyscallRestartWrapper result; + result = common_vector_io(fd, pos, vecs, count, write, false); return result; }