From: Alex Brainman Date: Sat, 26 Nov 2011 00:01:49 +0000 (+1100) Subject: os: fail if Open("") is called on windows X-Git-Tag: weekly.2011-12-01~54 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=e38a1053a9a0be021d6d93ebbd3deeb81ed28115;p=gostls13.git os: fail if Open("") is called on windows R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/5432071 --- diff --git a/src/pkg/os/file_windows.go b/src/pkg/os/file_windows.go index 3a252fb2d8..81fdbe3051 100644 --- a/src/pkg/os/file_windows.go +++ b/src/pkg/os/file_windows.go @@ -89,6 +89,9 @@ func openDir(name string) (file *File, err error) { // methods on the returned File can be used for I/O. // It returns the File and an error, if any. func OpenFile(name string, flag int, perm uint32) (file *File, err error) { + if name == "" { + return nil, &PathError{"open", name, syscall.ENOENT} + } // TODO(brainman): not sure about my logic of assuming it is dir first, then fall back to file r, e := openDir(name) if e == nil { diff --git a/src/pkg/os/os_test.go b/src/pkg/os/os_test.go index 7041136ec9..c2fbc9fdd5 100644 --- a/src/pkg/os/os_test.go +++ b/src/pkg/os/os_test.go @@ -901,6 +901,14 @@ func TestOpenError(t *testing.T) { } } +func TestOpenNoName(t *testing.T) { + f, err := Open("") + if err == nil { + t.Fatal(`Open("") succeeded`) + f.Close() + } +} + func run(t *testing.T, cmd []string) string { // Run /bin/hostname and collect output. r, w, err := Pipe()