R=rsc
CC=golang-dev
https://golang.org/cl/838046
// Read and decode Mach magic to determine byte order, size.
// Magic32 and Magic64 differ only in the bottom bit.
- var ident [4]uint8
+ var ident [4]byte
if _, err := r.ReadAt(&ident, 0); err != nil {
return nil, err
}
case le &^ 1:
f.ByteOrder = binary.LittleEndian
f.Magic = le
+ default:
+ return nil, &FormatError{0, "invalid magic number", nil}
}
// Read entire file header.
}
}
+
+func TestOpenFailure(t *testing.T) {
+ filename := "file.go" // not a Mach-O file
+ _, err := Open(filename) // don't crash
+ if err == nil {
+ t.Errorf("open %s: succeeded unexpectedly", filename)
+ }
+}