From 19db5eaaa9b86cb214852fdddcb4e8740267026f Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Mon, 20 Oct 2014 11:10:00 -0400 Subject: [PATCH] debug/pe: remove use of unsafe Helps in environments with restricted support for unsafe. LGTM=bradfitz R=r, bradfitz CC=dsymonds, golang-codereviews https://golang.org/cl/156410044 --- pe/file.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pe/file.go b/pe/file.go index ce6f140..28a4bae 100644 --- a/pe/file.go +++ b/pe/file.go @@ -13,7 +13,6 @@ import ( "io" "os" "strconv" - "unsafe" ) // A File represents an open PE file. @@ -125,6 +124,11 @@ func (f *File) Close() error { return err } +var ( + sizeofOptionalHeader32 = uintptr(binary.Size(OptionalHeader32{})) + sizeofOptionalHeader64 = uintptr(binary.Size(OptionalHeader64{})) +) + // NewFile creates a new File for accessing a PE binary in an underlying reader. func NewFile(r io.ReaderAt) (*File, error) { f := new(File) @@ -206,7 +210,7 @@ func NewFile(r io.ReaderAt) (*File, error) { var oh32 OptionalHeader32 var oh64 OptionalHeader64 switch uintptr(f.FileHeader.SizeOfOptionalHeader) { - case unsafe.Sizeof(oh32): + case sizeofOptionalHeader32: if err := binary.Read(sr, binary.LittleEndian, &oh32); err != nil { return nil, err } @@ -214,7 +218,7 @@ func NewFile(r io.ReaderAt) (*File, error) { return nil, fmt.Errorf("pe32 optional header has unexpected Magic of 0x%x", oh32.Magic) } f.OptionalHeader = &oh32 - case unsafe.Sizeof(oh64): + case sizeofOptionalHeader64: if err := binary.Read(sr, binary.LittleEndian, &oh64); err != nil { return nil, err }