summary refs log tree commit diff stats
path: root/compatfd.c
diff options
context:
space:
mode:
Diffstat (limited to 'compatfd.c')
-rw-r--r--compatfd.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/compatfd.c b/compatfd.c
index 31654c62a6..02306a4f71 100644
--- a/compatfd.c
+++ b/compatfd.c
@@ -119,9 +119,17 @@ int qemu_signalfd(const sigset_t *mask)
 bool qemu_signalfd_available(void)
 {
 #ifdef CONFIG_SIGNALFD
+    sigset_t mask;
+    int fd;
+    bool ok;
+    sigemptyset(&mask);
     errno = 0;
-    syscall(SYS_signalfd, -1, NULL, _NSIG / 8);
-    return errno != ENOSYS;
+    fd = syscall(SYS_signalfd, -1, &mask, _NSIG / 8);
+    ok = (errno != ENOSYS);
+    if (fd >= 0) {
+        close(fd);
+    }
+    return ok;
 #else
     return false;
 #endif