diff options
author | Ian Lance Taylor <iant@golang.org> | 2023-09-14 13:36:38 -0700 |
---|---|---|
committer | Gopher Robot <gobot@golang.org> | 2023-09-20 19:01:19 +0000 |
commit | 517c66d4ee1b6b8842da34fe4c0519cfa1c58600 (patch) | |
tree | 6d79714bffe084c7a177764159865e2b6b3c5386 /src/debug | |
parent | 5b37d720e39037fec4e298c3ae44d6487f029f92 (diff) | |
download | go-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.go | 3 |
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") } |