From b9e7c8a03958fc0b9ade61f2589c23a14e10bc57 Mon Sep 17 00:00:00 2001 From: Matheus Date: Sat, 9 Sep 2023 00:30:56 -0300 Subject: [PATCH] poll: support 0 nfds --- kernel-src/sys/syscalls/poll.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel-src/sys/syscalls/poll.c b/kernel-src/sys/syscalls/poll.c index 4cfa2a68..1d54184b 100644 --- a/kernel-src/sys/syscalls/poll.c +++ b/kernel-src/sys/syscalls/poll.c @@ -31,7 +31,9 @@ syscallret_t syscall_poll(context_t *, pollfd_t *fds, size_t nfds, int timeoutms memcpy(fdsbuff, fds, fdsbuffsize); polldesc_t desc = {0}; - ret.errno = poll_initdesc(&desc, nfds); + // when nfds is 0, poll is used as a sleep. + // therefore, initialize the desc size to one descriptor in that case. + ret.errno = poll_initdesc(&desc, nfds == 0 ? 1 : nfds); if (ret.errno) { goto cleanup; }