From ec9967ff11851facad48bb0c11639e52a77f79b9 Mon Sep 17 00:00:00 2001 From: Francisco Souza Date: Thu, 13 Sep 2012 10:25:35 -0400 Subject: [PATCH] go/build: reject empty strings in Import Fixes #3889. R=rsc, adg CC=golang-dev https://golang.org/cl/6499102 --- src/pkg/go/build/build.go | 3 +++ src/pkg/go/build/build_test.go | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/pkg/go/build/build.go b/src/pkg/go/build/build.go index a65ff437ab..53daa6db2f 100644 --- a/src/pkg/go/build/build.go +++ b/src/pkg/go/build/build.go @@ -351,6 +351,9 @@ func (ctxt *Context) Import(path string, srcDir string, mode ImportMode) (*Packa p := &Package{ ImportPath: path, } + if path == "" { + return p, fmt.Errorf("import %q: invalid import path", path) + } var pkga string var pkgerr error diff --git a/src/pkg/go/build/build_test.go b/src/pkg/go/build/build_test.go index caa4f26f33..d8cf98840d 100644 --- a/src/pkg/go/build/build_test.go +++ b/src/pkg/go/build/build_test.go @@ -61,6 +61,19 @@ func TestDotSlashImport(t *testing.T) { } } +func TestEmptyImport(t *testing.T) { + p, err := Import("", Default.GOROOT, FindOnly) + if err == nil { + t.Fatal(`Import("") returned nil error.`) + } + if p == nil { + t.Fatal(`Import("") returned nil package.`) + } + if p.ImportPath != "" { + t.Fatalf("ImportPath=%q, want %q.", p.ImportPath, "") + } +} + func TestLocalDirectory(t *testing.T) { cwd, err := os.Getwd() if err != nil { -- 2.48.1