mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
debug/dwarf: handle malformed line table with bad program offset
Touch up the line table reader to ensure that it can detect and reject an invalid program offset field in the table header. Fixes #53329. Change-Id: Ia8d684e909af3aca3014b4a3d0dfd431e3f5a9f0 Reviewed-on: https://go-review.googlesource.com/c/go/+/413814 Run-TryBot: Than McIntosh <thanm@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com>
This commit is contained in:
parent
15605ca827
commit
de5329f1de
1 changed files with 5 additions and 1 deletions
|
|
@ -215,7 +215,11 @@ func (r *LineReader) readHeader(compDir string) error {
|
|||
} else {
|
||||
headerLength = Offset(buf.uint32())
|
||||
}
|
||||
r.programOffset = buf.off + headerLength
|
||||
programOffset := buf.off + headerLength
|
||||
if programOffset > r.endOffset {
|
||||
return DecodeError{"line", hdrOffset, fmt.Sprintf("malformed line table: program offset %d exceeds end offset %d", programOffset, r.endOffset)}
|
||||
}
|
||||
r.programOffset = programOffset
|
||||
r.minInstructionLength = int(buf.uint8())
|
||||
if r.version >= 4 {
|
||||
// [DWARF4 6.2.4]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue