diff --git a/src/omf.cc b/src/omf.cc index 44a3783..c39f48f 100644 --- a/src/omf.cc +++ b/src/omf.cc @@ -101,8 +101,12 @@ bool OMF::loadSegments() { seg.lablen = 0xa; } } - handle->seek(ofs + dispname + seg.lablen); // skip past load name + // check if load name is valid + handle->seek(ofs + dispname); seg.name = handle->read(seg.lablen); + if (seg.name[0] == 0 || seg.name[0] == ' ') { // invalid name use segname + seg.name = handle->read(seg.lablen); + } seg.offset = ofs + dispdata; if (version == 1) { // convert to v2 seg.bytecnt *= 512;