登录
首页 >  Golang >  Go问答

访问已安装目录时出现分段冲突

来源:stackoverflow

时间:2024-04-12 23:12:28 167浏览 收藏

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《访问已安装目录时出现分段冲突》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

访问已安装的网络共享时出现分段违规代码=0x1错误

运行 golang 应用程序 (pwndelorian) 的 ubuntu 服务器崩溃。检查了目录的权限,那里一切似乎都很好。

fileList := []FileStruct{}
        err := filepath.Walk(dir, func(path string, f os.FileInfo, err error) error {
                fileList = append(fileList, FileStruct{f.Name(), path})
                return nil
        })
        if err != nil {
                return nil, err
        }
        return fileList, nil
}

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

>goroutine 1 [running]:
main.getAllFilesInDirectory.func1(0xc42031d950, 0x49, 0x0, 0x0, 0x71ea20, 0xc4202ba990, 0x0, 0x0)
        /home/jim/go/src/PwnDelorean/filesystem.go:42 +0x2f
path/filepath.walk(0xc42030fa80, 0x3c, 0x721ec0, 0xc420357930, 0xc42009b730, 0x0, 0x0)
        /usr/lib/go-1.10/src/path/filepath/path.go:377 +0x20d
path/filepath.walk(0xc42033eab0, 0x24, 0x721ec0, 0xc420356c30, 0xc42009b730, 0x0, 0x0)
        /usr/lib/go-1.10/src/path/filepath/path.go:381 +0x2c2
path/filepath.walk(0xc420313260, 0x16, 0x721ec0, 0xc420356820, 0xc42009b730, 0x0, 0x0)
        /usr/lib/go-1.10/src/path/filepath/path.go:381 +0x2c2
path/filepath.walk(0x7ffd2448320a, 0x11, 0x721ec0, 0xc4200a1d40, 0xc42009b730, 0x0, 0x10)
        /usr/lib/go-1.10/src/path/filepath/path.go:381 +0x2c2
path/filepath.Walk(0x7ffd2448320a, 0x11, 0xc42009b730, 0x0, 0x4982c4)
        /usr/lib/go-1.10/src/path/filepath/path.go:403 +0x106
main.getAllFilesInDirectory(0x7ffd2448320a, 0x11, 0x11, 0x0, 0xc4200a1ba0, 0xc42006bdf0, 0x497b5d)
        /home/jim/go/src/PwnDelorean/filesystem.go:41 +0xc4
main.startFileSystemScan()
        /home/jim/go/src/PwnDelorean/filesystem.go:129 +0x4e
main.main()
        /home/jim/go/src/PwnDelorean/main.go:136 +0x91

解决方案


文档提到,如果出现错误,info 可能为零:

因此,为了避免恐慌,您应该在尝试使用 info 参数之前检查它是否为 nil。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>