diff options
| author | Russ Cox <rsc@golang.org> | 2014-05-20 11:38:34 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2014-05-20 11:38:34 -0400 |
| commit | 82854d7b398ff49896c6b10e954891aa36fb1ade (patch) | |
| tree | 285e7350cf1cd44548da71f1d98037c5170168a6 | |
| parent | a4a1fadfa2bdb4f6cfb1ed1dcf6b4bb0cd58060f (diff) | |
| download | go-82854d7b398ff49896c6b10e954891aa36fb1ade.tar.xz | |
syscall: fix Write(nil) on NaCl
Fixes #7050.
LGTM=crawshaw, r
R=golang-codereviews, crawshaw, r
CC=golang-codereviews
https://golang.org/cl/91590043
| -rw-r--r-- | src/pkg/syscall/fd_nacl.go | 6 | ||||
| -rw-r--r-- | test/fixedbugs/issue7050.go | 19 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/pkg/syscall/fd_nacl.go b/src/pkg/syscall/fd_nacl.go index 19cd98acb1..74324142a7 100644 --- a/src/pkg/syscall/fd_nacl.go +++ b/src/pkg/syscall/fd_nacl.go @@ -162,7 +162,13 @@ func Read(fd int, b []byte) (int, error) { return f.impl.read(b) } +var zerobuf [0]byte + func Write(fd int, b []byte) (int, error) { + if b == nil { + // avoid nil in syscalls; nacl doesn't like that. + b = zerobuf[:] + } f, err := fdToFile(fd) if err != nil { return 0, err diff --git a/test/fixedbugs/issue7050.go b/test/fixedbugs/issue7050.go new file mode 100644 index 0000000000..e58b684049 --- /dev/null +++ b/test/fixedbugs/issue7050.go @@ -0,0 +1,19 @@ +// run + +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package main + +import ( + "fmt" + "os" +) + +func main() { + _, err := os.Stdout.Write(nil) + if err != nil { + fmt.Printf("BUG: os.Stdout.Write(nil) = %v\n", err) + } +} |
