in image/parse.go [73:97]
func parseRawHeader(imgData []byte, offset int) (ImageHdr, int, error) {
var hdr ImageHdr
r := bytes.NewReader(imgData)
r.Seek(int64(offset), io.SeekStart)
if err := binary.Read(r, binary.LittleEndian, &hdr); err != nil {
return hdr, 0, errors.Wrapf(err, "error reading image header")
}
if hdr.Magic != IMAGE_MAGIC {
return hdr, 0, errors.Errorf(
"image magic incorrect; expected 0x%08x, got 0x%08x",
uint32(IMAGE_MAGIC), hdr.Magic)
}
remLen := len(imgData) - offset
if remLen < int(hdr.HdrSz) {
return hdr, 0, errors.Errorf(
"image header incomplete; expected %d bytes, got %d bytes",
hdr.HdrSz, remLen)
}
return hdr, int(hdr.HdrSz), nil
}