From c21227c42b52034011cb3036a1bb1c73cc87313a Mon Sep 17 00:00:00 2001 From: Matheus Date: Mon, 10 Jun 2024 17:50:56 -0300 Subject: [PATCH] poll: fix not returning EINTR on signal --- kernel-src/sys/syscalls/poll.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel-src/sys/syscalls/poll.c b/kernel-src/sys/syscalls/poll.c index 1a9d6804..0b4be565 100644 --- a/kernel-src/sys/syscalls/poll.c +++ b/kernel-src/sys/syscalls/poll.c @@ -79,7 +79,8 @@ syscallret_t syscall_poll(context_t *, pollfd_t *fds, size_t nfds, int timeoutms } } - ret.errno = usercopy_touser(fds, fdsbuff, fdsbuffsize); + if (ret.errno == 0) + ret.errno = usercopy_touser(fds, fdsbuff, fdsbuffsize); poll_leave(&desc); poll_destroydesc(&desc);