in mfg/parse.go [112:137]
func Parse(data []byte, metaEndOff int, eraseVal byte) (Mfg, error) {
m := Mfg{
Bin: data,
}
if metaEndOff >= 0 {
if metaEndOff > len(data) {
return m, errors.Errorf(
"MMR offset (%d) beyond end of mfgimage (%d)",
metaEndOff, len(data))
}
meta, err := parseMeta(data[:metaEndOff])
if err != nil {
return m, err
}
m.Meta = &meta
m.MetaOff = metaEndOff - int(meta.Footer.Size)
for i := 0; i < int(meta.Footer.Size); i++ {
m.Bin[m.MetaOff+i] = eraseVal
}
}
return m, nil
}