diff options
-rw-r--r-- | pkg/tcpip/link/rawfile/rawfile_unsafe.go | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/pkg/tcpip/link/rawfile/rawfile_unsafe.go b/pkg/tcpip/link/rawfile/rawfile_unsafe.go index 44e25d475..69de6eb3e 100644 --- a/pkg/tcpip/link/rawfile/rawfile_unsafe.go +++ b/pkg/tcpip/link/rawfile/rawfile_unsafe.go @@ -69,13 +69,12 @@ func NonBlockingWrite(fd int, buf []byte) *tcpip.Error { // NonBlockingWrite3 writes up to three byte slices to a file descriptor in a // single syscall. It fails if partial data is written. func NonBlockingWrite3(fd int, b1, b2, b3 []byte) *tcpip.Error { - // If the is no second buffer, issue a regular write. - if len(b2) == 0 { + // If there is no second and third buffer, issue a regular write. + if len(b2) == 0 && len(b3) == 0 { return NonBlockingWrite(fd, b1) } - // We have two buffers. Build the iovec that represents them and issue - // a writev syscall. + // Build the iovec that represents them and issue a writev syscall. iovec := [3]syscall.Iovec{ { Base: &b1[0], |