From b705b53edd1b1e166391861cf9a0460b11a188a6 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Tue, 25 Nov 2014 01:48:56 +0100 Subject: [PATCH] linux: fix sigmask size arg in epoll_pwait() call sizeof(sigset_t) = 128 whereas the kernel expects 8, the size of a long. It made the system call fail with EINVAL when a non-NULL sigset was passed in. Fortunately, it's academic because there is just one call site and it passes in NULL. Fixes libuv/libuv#4. --- src/unix/linux-syscalls.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/unix/linux-syscalls.c b/src/unix/linux-syscalls.c index 06cc5943..c9945438 100644 --- a/src/unix/linux-syscalls.c +++ b/src/unix/linux-syscalls.c @@ -21,6 +21,7 @@ #include "linux-syscalls.h" #include +#include #include #include #include @@ -298,7 +299,7 @@ int uv__epoll_pwait(int epfd, nevents, timeout, sigmask, - sizeof(*sigmask)); + _NSIG / 8); #else return errno = ENOSYS, -1; #endif