aboutsummaryrefslogtreecommitdiff
path: root/src/debug
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2023-09-14 13:36:38 -0700
committerGopher Robot <gobot@golang.org>2023-09-20 19:01:19 +0000
commit517c66d4ee1b6b8842da34fe4c0519cfa1c58600 (patch)
tree6d79714bffe084c7a177764159865e2b6b3c5386 /src/debug
parent5b37d720e39037fec4e298c3ae44d6487f029f92 (diff)
downloadgo-517c66d4ee1b6b8842da34fe4c0519cfa1c58600.tar.gz
go-517c66d4ee1b6b8842da34fe4c0519cfa1c58600.zip
debug/elf: don't crash on empty symbol section
No test case because the problem can only happen for invalid data. Let the fuzzer find cases like this. Fixes #62649 Change-Id: Ia40b4d415e3bbffaffd143ee280949ba41346579 Reviewed-on: https://go-review.googlesource.com/c/go/+/528655 Auto-Submit: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com> Commit-Queue: Ian Lance Taylor <iant@google.com> Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Diffstat (limited to 'src/debug')
-rw-r--r--src/debug/elf/file.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/debug/elf/file.go b/src/debug/elf/file.go
index 4765c468d8..800c37fcd9 100644
--- a/src/debug/elf/file.go
+++ b/src/debug/elf/file.go
@@ -628,6 +628,9 @@ func (f *File) getSymbols32(typ SectionType) ([]Symbol, []byte, error) {
if err != nil {
return nil, nil, fmt.Errorf("cannot load symbol section: %w", err)
}
+ if len(data) == 0 {
+ return nil, nil, errors.New("symbol section is empty")
+ }
if len(data)%Sym32Size != 0 {
return nil, nil, errors.New("length of symbol section is not a multiple of SymSize")
}