]> Cypherpunks.ru repositories - gostls13.git/commitdiff
debug/elf: don't crash on empty symbol section
authorIan Lance Taylor <iant@golang.org>
Thu, 14 Sep 2023 20:36:38 +0000 (13:36 -0700)
committerGopher Robot <gobot@golang.org>
Wed, 20 Sep 2023 19:01:19 +0000 (19:01 +0000)
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>
src/debug/elf/file.go

index 4765c468d82baa1c7fe4abb44983bbe3d3791489..800c37fcd953478efe421f6cfc28191a388ef58e 100644 (file)
@@ -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")
        }