Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.openwrt.org/project/libubox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2023-03-08 11:38:53 +0300
committerFelix Fietkau <nbd@nbd.name>2023-03-08 11:38:55 +0300
commitef5e8e38bd38f26e2da2f6f0a2d720468c935280 (patch)
treee7f226a4eddfc2713f275c88fcb1d285beac8de5
parenteac92a4d5d82eb31e712157e7eb425af728b2c43 (diff)
usock: fix poll return code check
errno needs to be compared against EINTR/EAGAIN instead of the return code, and only if the return code is < 0. Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--usock.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/usock.c b/usock.c
index 0ce5390..15b6988 100644
--- a/usock.c
+++ b/usock.c
@@ -120,10 +120,7 @@ static int poll_restart(struct pollfd *fds, int nfds, int timeout)
while (1) {
ret = poll(fds, nfds, timeout);
- if (ret == EAGAIN)
- continue;
-
- if (ret != EINTR)
+ if (ret >= 0 || (errno != EINTR && errno != EAGAIN))
return ret;
clock_gettime(CLOCK_MONOTONIC, &cur);