diff options
Diffstat (limited to 'executor')
| -rw-r--r-- | executor/common_linux.h | 3 |
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"); } |
