aboutsummaryrefslogtreecommitdiffstats
path: root/executor/common_linux.h
diff options
context:
space:
mode:
Diffstat (limited to 'executor/common_linux.h')
-rw-r--r--executor/common_linux.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/executor/common_linux.h b/executor/common_linux.h
index f53a0e781..93ecef654 100644
--- a/executor/common_linux.h
+++ b/executor/common_linux.h
@@ -1749,8 +1749,9 @@ static int read_tun(char* data, int size)
int rv = read(tunfd, data, size);
if (rv < 0) {
+ // EBADF can be returned if the test closes tunfd with close_range syscall.
// Tun sometimes returns EBADFD, unclear if it's a kernel bug or not.
- if (errno == EAGAIN || errno == EBADFD)
+ if (errno == EAGAIN || errno == EBADF || errno == EBADFD)
return -1;
fail("tun read failed");
}