Commit e38a1053 authored by Alex Brainman's avatar Alex Brainman

os: fail if Open("") is called on windows

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5432071
parent 5519b5d7
...@@ -89,6 +89,9 @@ func openDir(name string) (file *File, err error) { ...@@ -89,6 +89,9 @@ func openDir(name string) (file *File, err error) {
// methods on the returned File can be used for I/O. // methods on the returned File can be used for I/O.
// It returns the File and an error, if any. // It returns the File and an error, if any.
func OpenFile(name string, flag int, perm uint32) (file *File, err error) { 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 // TODO(brainman): not sure about my logic of assuming it is dir first, then fall back to file
r, e := openDir(name) r, e := openDir(name)
if e == nil { if e == nil {
......
...@@ -901,6 +901,14 @@ func TestOpenError(t *testing.T) { ...@@ -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 { func run(t *testing.T, cmd []string) string {
// Run /bin/hostname and collect output. // Run /bin/hostname and collect output.
r, w, err := Pipe() r, w, err := Pipe()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment