aboutsummaryrefslogtreecommitdiff
path: root/src/debug/dwarf/line.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/debug/dwarf/line.go')
-rw-r--r--src/debug/dwarf/line.go9
1 files changed, 1 insertions, 8 deletions
diff --git a/src/debug/dwarf/line.go b/src/debug/dwarf/line.go
index 5588c5ca45..ca64bbd7f3 100644
--- a/src/debug/dwarf/line.go
+++ b/src/debug/dwarf/line.go
@@ -177,14 +177,7 @@ func (r *LineReader) readHeader() error {
// Read basic header fields [DWARF2 6.2.4].
hdrOffset := buf.off
- dwarf64 := false
- unitLength := Offset(buf.uint32())
- if unitLength == 0xffffffff {
- dwarf64 = true
- unitLength = Offset(buf.uint64())
- } else if unitLength >= 0xfffffff0 {
- return DecodeError{"line", hdrOffset, fmt.Sprintf("total length field has reserved value %#x", unitLength)}
- }
+ unitLength, dwarf64 := buf.unitLength()
r.endOffset = buf.off + unitLength
if r.endOffset > buf.off+Offset(len(buf.data)) {
return DecodeError{"line", hdrOffset, fmt.Sprintf("line table end %d exceeds section size %d", r.endOffset, buf.off+Offset(len(buf.data)))}