From: Frédéric Lécaille Date: Wed, 2 Feb 2022 13:33:10 +0000 (+0100) Subject: MINOR: quic: EINTR error ignored X-Git-Tag: v2.6-dev2~167 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=439c464250a61224c8f52504216bd68daeb95431;p=thirdparty%2Fhaproxy.git MINOR: quic: EINTR error ignored This should fix Coverity CID 375050 in GH #1536 where EINTR errno was ignored due to wrong do...while() loop usage. --- diff --git a/src/quic_sock.c b/src/quic_sock.c index ddfd865e80..1d4564098a 100644 --- a/src/quic_sock.c +++ b/src/quic_sock.c @@ -233,14 +233,11 @@ void quic_sock_fd_iocb(int fd) do { ret = recvfrom(fd, dgram_buf, max_sz, 0, (struct sockaddr *)&saddr, &saddrlen); - if (ret < 0) { - if (errno == EINTR) - continue; - if (errno == EAGAIN) - fd_cant_recv(fd); + if (ret < 0 && errno == EAGAIN) { + fd_cant_recv(fd); goto out; } - } while (0); + } while (ret < 0 && errno == EINTR); b_add(buf, ret); if (!quic_lstnr_dgram_dispatch(dgram_buf, ret, l, &saddr,