]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go/internal/modcmd: assign module's path and version to fileJSON when modFile...
authorUdalov Max <re.udalov@gmail.com>
Tue, 23 Apr 2019 09:53:35 +0000 (12:53 +0300)
committerJay Conrod <jayconrod@google.com>
Wed, 24 Apr 2019 00:09:18 +0000 (00:09 +0000)
Fixes panic on nil pointer dereference error when assigning module's path and version pair to fileJSON.

Fixes #31623

Change-Id: I3f61122ba0676a1270d3ad98900af8c8e9c90935
Reviewed-on: https://go-review.googlesource.com/c/go/+/173397
Run-TryBot: Jay Conrod <jayconrod@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
src/cmd/go/internal/modcmd/edit.go
src/cmd/go/testdata/script/mod_edit.txt

index 5066e4ddf75f97394c44549dda8113f72f7ca32e..1be8b7cb2fbbdf41d1277c7d338ec6787ca65c55 100644 (file)
@@ -385,7 +385,9 @@ type replaceJSON struct {
 // editPrintJSON prints the -json output.
 func editPrintJSON(modFile *modfile.File) {
        var f fileJSON
-       f.Module = modFile.Module.Mod
+       if modFile.Module != nil {
+               f.Module = modFile.Module.Mod
+       }
        if modFile.Go != nil {
                f.Go = modFile.Go.Version
        }
index aa714e8b3cd7baeb6cc6a9e7862d05a92dad2ec2..42007b13d09f95f63cb0ced068648be4a80afd56 100644 (file)
@@ -25,6 +25,10 @@ cmpenv go.mod $WORK/go.mod.edit2
 go mod edit -json
 cmpenv stdout $WORK/go.mod.json
 
+# go mod edit -json (empty mod file)
+go mod edit -json $WORK/go.mod.empty
+cmp stdout $WORK/go.mod.empty.json
+
 # go mod edit -replace
 go mod edit -replace=x.1@v1.3.0=y.1/v2@v2.3.5 -replace=x.1@v1.4.0=y.1/v2@v2.3.5
 cmpenv go.mod $WORK/go.mod.edit3
@@ -168,4 +172,14 @@ require x.3   v1.99.0
 -- $WORK/m/go.mod.edit --
 module x.x/y/z
 
-go $goversion
\ No newline at end of file
+go $goversion
+-- $WORK/go.mod.empty --
+-- $WORK/go.mod.empty.json --
+{
+       "Module": {
+               "Path": ""
+       },
+       "Require": null,
+       "Exclude": null,
+       "Replace": null
+}