From 25de6276e86c459e94ae69c4b95a6e9f1cd8cdc4 Mon Sep 17 00:00:00 2001 From: Stefan Herbrechtsmeier Date: Thu, 27 Jan 2022 14:45:15 +0100 Subject: [PATCH] j1939cat: fix error detection of poll function call The poll function return -1 on error and set errno to indicate the error. Signed-off-by: Stefan Herbrechtsmeier --- j1939cat.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/j1939cat.c b/j1939cat.c index aced6b9..34a8c03 100644 --- a/j1939cat.c +++ b/j1939cat.c @@ -368,10 +368,12 @@ static int j1939cat_send_loop(struct j1939cat_priv *priv, int out_fd, char *buf, int ret; ret = poll(&fds, 1, priv->polltimeout); - if (ret == -EINTR) - continue; - if (ret < 0) - return -errno; + if (ret == -1) { + if (errno == -EINTR) + continue; + else + return -errno; + } if (!ret) return -ETIME; if (!(fds.revents & events)) { @@ -572,10 +574,12 @@ static int j1939cat_recv(struct j1939cat_priv *priv) int ret; ret = poll(&fds, 1, priv->polltimeout); - if (ret == -EINTR) - continue; - if (ret < 0) - return -errno; + if (ret == -1) { + if (errno == -EINTR) + continue; + else + return -errno; + } if (!ret) continue; if (!(fds.revents & events)) {