From 5f54f06a359f2973521ff3f42899c12d3a6a7fed Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Tue, 28 Oct 2014 22:44:59 +0100 Subject: [PATCH] os: fix write on Plan 9 In CL 160670043 the write function was changed so a zero-length write is now allowed. This leads the ExampleWriter_Init test to fail. The reason is that Plan 9 preserves message boundaries, while the os library expects systems that don't preserve them. We have to ignore zero-length writes so they will never turn into EOF. This issue was previously discussed in CL 7406046. LGTM=bradfitz R=rsc, bradfitz CC=golang-codereviews https://golang.org/cl/163510043 --- src/os/file_plan9.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/os/file_plan9.go b/src/os/file_plan9.go index 22860e20af7..5efc2a4f1db 100644 --- a/src/os/file_plan9.go +++ b/src/os/file_plan9.go @@ -259,6 +259,9 @@ func (f *File) pread(b []byte, off int64) (n int, err error) { // Since Plan 9 preserves message boundaries, never allow // a zero-byte write. func (f *File) write(b []byte) (n int, err error) { + if len(b) == 0 { + return 0, nil + } return fixCount(syscall.Write(f.fd, b)) }