diff --git a/src/map.h b/src/map.h index f5b36fb..b026720 100644 --- a/src/map.h +++ b/src/map.h @@ -40,7 +40,7 @@ class Map { void addEntry(uint32_t entry, uint32_t flags); void addSymbol(uint32_t org, std::string name); uint32_t org; - uint8_t b; + uint8_t b = 0; private: std::string mapname; diff --git a/src/omf.cc b/src/omf.cc index 0e024ce..9512700 100644 --- a/src/omf.cc +++ b/src/omf.cc @@ -386,7 +386,7 @@ bool OMF::relocSegments() { } } if (seg.isJump()) { // patch jumptable - for (int i = 8; i < seg.length; i += 14) { + for (int i = 8; i < seg.length - 14; i += 14) { uint16_t segnum = data[i + 4] | (data[i + 5] << 8); int32_t subOffset = data[i + 6] | (data[i + 7] << 8) | (data[i + 8] << 16) | (data[i + 9] << 24);