]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
io-util: fix ppoll_usec() bypass 36568/head
authorLennart Poettering <lennart@poettering.net>
Mon, 3 Mar 2025 08:34:59 +0000 (09:34 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 3 Mar 2025 09:47:09 +0000 (10:47 +0100)
If a non-zero timeout is specified we should not bypass ppoll() even if
no fds are specified, since it will still act as a time based sleep in
that case.

src/basic/io-util.c

index d8b56d05955b25b5026420616b9dfd0dbda3b968..f12f6b192c968d10e8a2806e10522f8d241fd986 100644 (file)
@@ -208,7 +208,7 @@ int ppoll_usec_full(struct pollfd *fds, size_t nfds, usec_t timeout, const sigse
          *  to handle signals, such as signalfd() or signal handlers. ⚠️ ⚠️ ⚠️
          */
 
-        if (nfds == 0)
+        if (nfds == 0 && timeout == 0)
                 return 0;
 
         r = ppoll(fds, nfds, timeout == USEC_INFINITY ? NULL : TIMESPEC_STORE(timeout), ss);