]> Cypherpunks repositories - gostls13.git/commitdiff
go/build: reject empty strings in Import
authorFrancisco Souza <franciscossouza@gmail.com>
Thu, 13 Sep 2012 14:25:35 +0000 (10:25 -0400)
committerRuss Cox <rsc@golang.org>
Thu, 13 Sep 2012 14:25:35 +0000 (10:25 -0400)
Fixes #3889.

R=rsc, adg
CC=golang-dev
https://golang.org/cl/6499102

src/pkg/go/build/build.go
src/pkg/go/build/build_test.go

index a65ff437ab347242991e7188793e6cd7cf9c67f5..53daa6db2fb13105127c172d99de3efa2aa0fcb3 100644 (file)
@@ -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
index caa4f26f332e696ceaa78ad523056b6376f1fda2..d8cf98840d71f33ec435ce2f3cf2d13699661294 100644 (file)
@@ -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 {