amit-davidson / Chronos

Chronos - A static race detector for the go language
MIT License
424 stars 11 forks source link

panic: runtime error: invalid memory address or nil pointer dereference #6

Closed rjeczalik closed 3 years ago

rjeczalik commented 3 years ago

I'm using the following version:

+github.com/amit-davidson/Chronos v0.0.0-20201017170051-1634412958f8 h1:MZrylyYLgUexduUsYWV9DbgxqJduLk3phvT2jGPKJfU=
+github.com/amit-davidson/Chronos v0.0.0-20201017170051-1634412958f8/go.mod h1:w8yL4vxG5cWT/GztYUDpB3vRuOuSimZf0yWp2eRx6Fc=

When trying to analyse a command (sorry, closed source!) I am getting:

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x6c7c07]

goroutine 1 [running]:
github.com/amit-davidson/Chronos/ssaUtils.GetBlocksSummary(0xc058872260, 0xc04387ca50, 0xc017beb8c0, 0x1a)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/CFG.go:69 +0xe7
github.com/amit-davidson/Chronos/ssaUtils.HandleFunction(0xc058872260, 0xc0399fbe00, 0x1)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/Functions.go:174 +0x19f
github.com/amit-davidson/Chronos/ssaUtils.HandleCallCommon(0xc058872260, 0xc0439024c0, 0x1f86e74, 0x0)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/Functions.go:45 +0x49b
github.com/amit-davidson/Chronos/ssaUtils.GetBlockSummary(0xc058872260, 0xc04387c840, 0xc058937df0)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/Functions.go:133 +0x4ff
github.com/amit-davidson/Chronos/ssaUtils.GetBlocksSummary.func1(0xc058872260, 0xc04387c840, 0x0)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/CFG.go:57 +0x35
github.com/amit-davidson/Chronos/ssaUtils.(*CFG).traverseGraph(0xc05895c900, 0xc058872260, 0xc04387c840)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/CFG.go:114 +0x11d
github.com/amit-davidson/Chronos/ssaUtils.GetBlocksSummary(0xc058872260, 0xc04387c840, 0xc017beb8c0, 0x1a)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/CFG.go:68 +0xdb
github.com/amit-davidson/Chronos/ssaUtils.HandleFunction(0xc058872260, 0xc0399fbcc0, 0x1)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/Functions.go:174 +0x19f
github.com/amit-davidson/Chronos/ssaUtils.HandleCallCommon(0xc058872260, 0xc03d6c94c0, 0x1f87a7e, 0x0)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/Functions.go:45 +0x49b
github.com/amit-davidson/Chronos/ssaUtils.GetBlockSummary(0xc058872260, 0xc03cb456b0, 0xc058936fd0)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/Functions.go:133 +0x4ff
github.com/amit-davidson/Chronos/ssaUtils.GetBlocksSummary.func1(0xc058872260, 0xc03cb456b0, 0x0)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/CFG.go:57 +0x35
github.com/amit-davidson/Chronos/ssaUtils.(*CFG).traverseGraph(0xc058945180, 0xc058872260, 0xc03cb456b0)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/CFG.go:114 +0x11d
github.com/amit-davidson/Chronos/ssaUtils.GetBlocksSummary(0xc058872260, 0xc03cb456b0, 0xc017beb8c0, 0x1a)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/CFG.go:68 +0xdb
github.com/amit-davidson/Chronos/ssaUtils.HandleFunction(0xc058872260, 0xc0399fba40, 0x1)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/Functions.go:174 +0x19f
github.com/amit-davidson/Chronos/ssaUtils.HandleCallCommon(0xc058872260, 0xc0436ec840, 0x1f9767a, 0x0)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/Functions.go:45 +0x49b
github.com/amit-davidson/Chronos/ssaUtils.GetBlockSummary(0xc058872260, 0xc0436e0bb0, 0xc0589364c0)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/Functions.go:133 +0x4ff
github.com/amit-davidson/Chronos/ssaUtils.GetBlocksSummary.func1(0xc058872260, 0xc0436e0bb0, 0x0)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/CFG.go:57 +0x35
github.com/amit-davidson/Chronos/ssaUtils.(*CFG).traverseGraph(0xc058927cc0, 0xc058872260, 0xc0436e0bb0)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/CFG.go:114 +0x11d
github.com/amit-davidson/Chronos/ssaUtils.GetBlocksSummary(0xc058872260, 0xc0436e0bb0, 0xc017beb8c0, 0x1a)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/CFG.go:68 +0xdb
github.com/amit-davidson/Chronos/ssaUtils.HandleFunction(0xc058872260, 0xc039a34780, 0x1)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/Functions.go:174 +0x19f
github.com/amit-davidson/Chronos/ssaUtils.HandleCallCommon(0xc058872260, 0xc03d26da40, 0x1f99056, 0x0)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/Functions.go:45 +0x49b
github.com/amit-davidson/Chronos/ssaUtils.GetBlockSummary(0xc058872260, 0xc02a05e210, 0xc058861e70)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/Functions.go:133 +0x4ff
github.com/amit-davidson/Chronos/ssaUtils.GetBlocksSummary.func1(0xc058872260, 0xc02a05e210, 0x0)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/CFG.go:57 +0x35
github.com/amit-davidson/Chronos/ssaUtils.(*CFG).traverseGraph(0xc0588652c0, 0xc058872260, 0xc02a05e210)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/CFG.go:114 +0x11d
github.com/amit-davidson/Chronos/ssaUtils.GetBlocksSummary(0xc058872260, 0xc02a05e210, 0xc017beb8c0, 0x1a)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/CFG.go:68 +0xdb
github.com/amit-davidson/Chronos/ssaUtils.HandleFunction(0xc058872260, 0xc039a61b80, 0x1)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/Functions.go:174 +0x19f
github.com/amit-davidson/Chronos/ssaUtils.HandleCallCommon(0xc058872260, 0xc027dff8c0, 0x1f993ed, 0x0)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/Functions.go:45 +0x49b
github.com/amit-davidson/Chronos/ssaUtils.GetBlockSummary(0xc058872260, 0xc025c76790, 0xc058861a70)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/Functions.go:133 +0x4ff
github.com/amit-davidson/Chronos/ssaUtils.GetBlocksSummary.func1(0xc058872260, 0xc025c76790, 0x0)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/CFG.go:57 +0x35
github.com/amit-davidson/Chronos/ssaUtils.(*CFG).traverseGraph(0xc058864b80, 0xc058872260, 0xc025c76790)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/CFG.go:114 +0x11d
github.com/amit-davidson/Chronos/ssaUtils.GetBlocksSummary(0xc058872260, 0xc025c76790, 0xc017beb8c0, 0x1a)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/CFG.go:68 +0xdb
github.com/amit-davidson/Chronos/ssaUtils.HandleFunction(0xc058872260, 0xc039a61e00, 0x1)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/Functions.go:174 +0x19f
github.com/amit-davidson/Chronos/ssaUtils.HandleCallCommon(0xc058872260, 0xc058864ac0, 0x1f9932d, 0x0)
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/ssaUtils/Functions.go:45 +0x49b
main.main()
    /home/rjeczalik/pkg/mod/github.com/amit-davidson/!chronos@v0.0.0-20201017170051-1634412958f8/cmd/main.go:34 +0x43c
amit-davidson commented 3 years ago

Hey! Do you by any chance have for loops/select statements in your code? I haven't added support for that but that's definitely on top of my priority. Anyway, for now, I think adding a more user-friendly error should be better.