]> Cypherpunks.ru repositories - gostls13.git/commit
cmd/internal/goobj: fix buglet in object file reader
authorThan McIntosh <thanm@google.com>
Tue, 15 Dec 2020 20:54:25 +0000 (15:54 -0500)
committerThan McIntosh <thanm@google.com>
Wed, 16 Dec 2020 14:09:20 +0000 (14:09 +0000)
commitf4e7a6b905ce60448e506a3f6578d01b60602cdd
tree35ed7da80b140f2705510eb59cf1ea1b8c265386
parent75e16f5127eb6affb4b473c93565a8d29a802e51
cmd/internal/goobj: fix buglet in object file reader

The code in the new (introduced in 1.15) Go object file reader was
casting a pointer-mmaped-memory into a large array prior to performing
a read of the relocations section:

return (*[1<<20]Reloc)(unsafe.Pointer(&r.b[off]))[:n:n]

For very large object files, this artificial array isn't large enough
(that is, there are more than 1048576 relocs to read), so update the
code to use a larger artifical array size.

Fixes #41621.

Change-Id: Ic047c8aef4f8a3839f2e7e3594bce652ebd6bd5b
Reviewed-on: https://go-review.googlesource.com/c/go/+/278492
Run-TryBot: Than McIntosh <thanm@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Jeremy Faller <jeremy@golang.org>
Trust: Than McIntosh <thanm@google.com>
src/cmd/internal/goobj/objfile.go