Skip to content
This repository has been archived by the owner on Jun 25, 2022. It is now read-only.

packr.New() crashes with SIGSEGV when using a const string path from another file #258

Open
ddoan opened this issue Dec 18, 2019 · 0 comments

Comments

@ddoan
Copy link

ddoan commented Dec 18, 2019

Repro

  1. Create a file const.go:
package main

const (
    path = "./templates"
)
  1. Create a file main.go:
package main

import (
    "github.com/gobuffalo/packr/v2"
)

func main() {

    box := packr.New("templates", path)

    _ = box
}
  1. Run packr2:
$ packr2
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x136d931]

goroutine 1 [running]:
github.com/gobuffalo/packr/v2/jam/parser.(*Visitor).evalSelector.func1(0x1579b20, 0xc0001c25c0, 0xc0001a8690, 0xb, 0x0, 0x0)
	/Users/doug/Go/src/github.com/gobuffalo/packr/v2/jam/parser/visitor.go:191 +0x61
github.com/gobuffalo/packr/v2/jam/parser.(*Visitor).evalSelector(0xc0001ac640, 0xc0001ac700, 0xc0001c2580, 0xc0001a0a90, 0x48)
	/Users/doug/Go/src/github.com/gobuffalo/packr/v2/jam/parser/visitor.go:214 +0x4d6
github.com/gobuffalo/packr/v2/jam/parser.(*Visitor).evalArgs(0xc0001ac640, 0x1579720, 0xc0001ac700, 0x100b585, 0x1464a20)
	/Users/doug/Go/src/github.com/gobuffalo/packr/v2/jam/parser/visitor.go:161 +0x214
github.com/gobuffalo/packr/v2/jam/parser.(*Visitor).evalStmt(0xc0001ac640, 0x1579520, 0xc0001ac740, 0x0, 0x0)
	/Users/doug/Go/src/github.com/gobuffalo/packr/v2/jam/parser/visitor.go:106 +0xa7
github.com/gobuffalo/packr/v2/jam/parser.(*Visitor).eval(0xc0001ac640, 0x1574720, 0xc0001b3260, 0x0, 0xc00013f3c0)
	/Users/doug/Go/src/github.com/gobuffalo/packr/v2/jam/parser/visitor.go:85 +0xc0
github.com/gobuffalo/packr/v2/jam/parser.(*Visitor).Visit(0xc0001ac640, 0x1574720, 0xc0001b3260, 0x1570600, 0xc0001ac640)
	/Users/doug/Go/src/github.com/gobuffalo/packr/v2/jam/parser/visitor.go:61 +0x4c
go/ast.Walk(0x1570600, 0xc0001ac640, 0x1574720, 0xc0001b3260)
	/usr/local/Cellar/go/1.12.6/libexec/src/go/ast/walk.go:52 +0x66
go/ast.walkDeclList(0x1570600, 0xc0001ac640, 0xc0001c2680, 0x2, 0x2)
	/usr/local/Cellar/go/1.12.6/libexec/src/go/ast/walk.go:38 +0x9e
go/ast.Walk(0x1570600, 0xc0001ac640, 0x15746a0, 0xc0001b6500)
	/usr/local/Cellar/go/1.12.6/libexec/src/go/ast/walk.go:353 +0x2659
github.com/gobuffalo/packr/v2/jam/parser.(*Visitor).Run(0xc0001ac640, 0x18bf7c0, 0x14d22d3, 0x3, 0xc00013fa40, 0x2)
	/Users/doug/Go/src/github.com/gobuffalo/packr/v2/jam/parser/visitor.go:37 +0x173
github.com/gobuffalo/packr/v2/jam/parser.(*Parser).Run(0xc000165ac0, 0x1, 0x1, 0xc000165a80, 0xc000165ac0, 0x0)
	/Users/doug/Go/src/github.com/gobuffalo/packr/v2/jam/parser/parser.go:23 +0x455
github.com/gobuffalo/packr/v2/jam/store.Clean(0xc000024044, 0x33, 0x0, 0x0)
	/Users/doug/Go/src/github.com/gobuffalo/packr/v2/jam/store/clean.go:22 +0xf3
github.com/gobuffalo/packr/v2/jam.Clean(0xc00017a360, 0x2, 0x1, 0x0, 0x1)
	/Users/doug/Go/src/github.com/gobuffalo/packr/v2/jam/pack.go:108 +0xbb
github.com/gobuffalo/packr/v2/jam.Pack(0x0, 0x0, 0x0, 0xc00017a360, 0x1, 0x1, 0x0, 0x0, 0xc00013fd88)
	/Users/doug/Go/src/github.com/gobuffalo/packr/v2/jam/pack.go:33 +0xca
github.com/gobuffalo/packr/v2/packr2/cmd.glob..func6(0x189a640, 0x18bf7c0, 0x0, 0x0, 0x0, 0x0)
	/Users/doug/Go/src/github.com/gobuffalo/packr/v2/packr2/cmd/root.go:64 +0x158
github.com/spf13/cobra.(*Command).execute(0x189a640, 0xc0000201b0, 0x0, 0x0, 0x189a640, 0xc0000201b0)
	/Users/doug/Go/src/github.com/spf13/cobra/command.go:829 +0x465
github.com/spf13/cobra.(*Command).ExecuteC(0x189a640, 0x0, 0x0, 0x13ec637)
	/Users/doug/Go/src/github.com/spf13/cobra/command.go:917 +0x2fc
github.com/spf13/cobra.(*Command).Execute(...)
	/Users/doug/Go/src/github.com/spf13/cobra/command.go:867
github.com/gobuffalo/packr/v2/packr2/cmd.Execute()
	/Users/doug/Go/src/github.com/gobuffalo/packr/v2/packr2/cmd/root.go:71 +0x2e
main.main()
	/Users/doug/Go/src/github.com/gobuffalo/packr/v2/packr2/main.go:6 +0x20
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant