]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: quic: EINTR error ignored
authorFrédéric Lécaille <flecaille@haproxy.com>
Wed, 2 Feb 2022 13:33:10 +0000 (14:33 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Mon, 14 Feb 2022 14:20:54 +0000 (15:20 +0100)
This should fix Coverity CID 375050 in GH #1536 where EINTR errno was ignored due
to wrong do...while() loop usage.

src/quic_sock.c

index ddfd865e80f5768df5a540ab2a96d2f5434be552..1d4564098ab68ec4ae04d0bda17546a04cfdf35c 100644 (file)
@@ -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,