]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: don't crash in go fmt on invalid input when using modules
authorIan Lance Taylor <iant@golang.org>
Fri, 3 Aug 2018 18:27:32 +0000 (11:27 -0700)
committerIan Lance Taylor <iant@golang.org>
Fri, 3 Aug 2018 19:51:38 +0000 (19:51 +0000)
Fixes #26792

Change-Id: I9a878180af28e3939b654fd88bed150010dffde0
Reviewed-on: https://go-review.googlesource.com/127856
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/go/internal/fmtcmd/fmt.go
src/cmd/go/testdata/script/mod_gofmt_invalid.txt [new file with mode: 0644]

index 0e5509edfaca8821779eb5e7e6cb23683611e67b..8e4ef37281662500463f54fb1f80ec1f35f5f001 100644 (file)
@@ -60,7 +60,7 @@ func runFmt(cmd *base.Command, args []string) {
                }()
        }
        for _, pkg := range load.PackagesAndErrors(args) {
-               if modload.Enabled() && !pkg.Module.Main {
+               if modload.Enabled() && pkg.Module != nil && !pkg.Module.Main {
                        if !printed {
                                fmt.Fprintf(os.Stderr, "go: not formatting packages in dependency modules\n")
                                printed = true
diff --git a/src/cmd/go/testdata/script/mod_gofmt_invalid.txt b/src/cmd/go/testdata/script/mod_gofmt_invalid.txt
new file mode 100644 (file)
index 0000000..21edc7d
--- /dev/null
@@ -0,0 +1,13 @@
+# Test for a crash in go fmt on invalid input when using modules.
+# Issue 26792.
+
+env GO111MODULE=on
+! go fmt x.go
+! stderr panic
+
+-- go.mod --
+module x
+
+-- x.go --
+// Missing package declaration.
+var V int