diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfFileHeader.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfFileHeader.java index 18a7d67ce0..f695998aab 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfFileHeader.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfFileHeader.java @@ -351,10 +351,8 @@ public class OmfFileHeader extends OmfRecord { header.groups.add(group); } else if (record instanceof OmfFixupRecord fixuprec) { - if (lastDataBlock != null) { - fixuprec.setDataBlock(lastDataBlock); - header.fixup.add(fixuprec); - } + fixuprec.setDataBlock(lastDataBlock); + header.fixup.add(fixuprec); } else if (record instanceof OmfEnumeratedData enumheader) { header.addEnumeratedBlock(enumheader); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/OmfLoader.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/OmfLoader.java index 3caaaab634..6f796d812d 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/OmfLoader.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/OmfLoader.java @@ -198,6 +198,9 @@ public class OmfLoader extends AbstractProgramWrapperLoader { int method, index, locationType = -1; locAddress = null; + if(fixup.getDataBlock() == null) { + continue; // If no data block don't try to fixup + } try { if (subrec.isTargetThread()) { Subrecord rec = targetThreads[subrec.getFixThreadNum()];