Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

debug/buildinfo: nil pointer dereference in buildinfo.Read #52718

Closed
catenacyber opened this issue May 5, 2022 · 2 comments
Closed

debug/buildinfo: nil pointer dereference in buildinfo.Read #52718

catenacyber opened this issue May 5, 2022 · 2 comments
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.

Comments

@catenacyber
Copy link
Contributor

catenacyber commented May 5, 2022

What version of Go are you using (go version)?

$ go version
go version go1.17.6 darwin/amd64

Does this issue reproduce with the latest release?

Yes

What operating system and processor architecture are you using (go env)?

go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/catena/Library/Caches/go-build"
GOENV="/Users/catena/Library/Application Support/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/catena/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/catena/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GOVCS=""
GOVERSION="go1.17.6"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/catena/go/src/github.com/catenacyber/go/src/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/pp/dc1dtf9x2js3v0jx_m010nqr0000gn/T/go-build4237848497=/tmp/go-build -gno-record-gcc-switches -fno-common"
GOROOT/bin/go version: go version go1.17.6 darwin/amd64
GOROOT/bin/go tool compile -V: compile version go1.17.6
uname -v: Darwin Kernel Version 21.3.0: Wed Jan  5 21:37:58 PST 2022; root:xnu-8019.80.24~20/RELEASE_X86_64
ProductName:	macOS
ProductVersion:	12.2.1
BuildVersion:	21D62
lldb --version: lldb-1316.0.9.41
Apple Swift version 5.6 (swiftlang-5.6.0.323.62 clang-1316.0.20.8)
gdb --version: GNU gdb (GDB) 9.1

What did you do?

Run https://go.dev/play/p/IjEGwgtXBlX

What did you expect to see?

The program finishing and printing hello

What did you see instead?

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

goroutine 1 [running]:
debug/buildinfo.(*xcoffExe).DataStart(0x4eafe8?)
	/usr/local/go-faketime/src/debug/buildinfo/buildinfo.go:396 +0x26
debug/buildinfo.readRawBuildInfo({0x4eafe8, 0xc0000a8240})
	/usr/local/go-faketime/src/debug/buildinfo/buildinfo.go:142 +0x3c6
debug/buildinfo.Read({0x4eafe8?, 0xc0000a8240?})
	/usr/local/go-faketime/src/debug/buildinfo/buildinfo.go:74 +0x27
main.main()
	/tmp/sandbox4223629967/prog.go:12 +0xc5

Program exited.

Found by https://github.com/catenacyber/ngolo-fuzzing on oss-fuzz
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=46671

Jorropo added a commit to Jorropo/go that referenced this issue May 5, 2022
I've made it return 0 following what the other DataStart implementation
do when they do not found the section.

Fixes golang#52718
@gopherbot
Copy link
Contributor

Change https://go.dev/cl/404254 mentions this issue: debug: fix missing C style error handling in xcoffExe.DataStart

Jorropo added a commit to Jorropo/go that referenced this issue May 5, 2022
I've made it return 0 following what the other DataStart implementation
do when they do not found the section.

Fixes golang#52718
@dr2chase dr2chase added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label May 5, 2022
@dr2chase
Copy link
Contributor

dr2chase commented May 5, 2022

@aclements @ianlancetaylor It's a fuzzer bug, and comes with a proposed fix. Is the fix a good choice?

Jorropo added a commit to Jorropo/go that referenced this issue May 5, 2022
I've made it return 0 following what the other DataStart implementation
do when they do not found the section.

Fixes golang#52718
@golang golang locked and limited conversation to collaborators May 6, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants