diff options
Diffstat (limited to 'src/debug')
| -rw-r--r-- | src/debug/macho/file.go | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/src/debug/macho/file.go b/src/debug/macho/file.go index b57dba8496..e6b170a7cd 100644 --- a/src/debug/macho/file.go +++ b/src/debug/macho/file.go @@ -13,6 +13,7 @@ import ( "debug/dwarf" "encoding/binary" "fmt" + "internal/saferio" "io" "os" "strings" @@ -73,12 +74,7 @@ type Segment struct { // Data reads and returns the contents of the segment. func (s *Segment) Data() ([]byte, error) { - dat := make([]byte, s.sr.Size()) - n, err := s.sr.ReadAt(dat, 0) - if n == len(dat) { - err = nil - } - return dat[0:n], err + return saferio.ReadDataAt(s.sr, s.Filesz, 0) } // Open returns a new ReadSeeker reading the segment. @@ -126,12 +122,7 @@ type Section struct { // Data reads and returns the contents of the Mach-O section. func (s *Section) Data() ([]byte, error) { - dat := make([]byte, s.sr.Size()) - n, err := s.sr.ReadAt(dat, 0) - if n == len(dat) { - err = nil - } - return dat[0:n], err + return saferio.ReadDataAt(s.sr, s.Size, 0) } // Open returns a new ReadSeeker reading the Mach-O section. |
