diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfCommentRecord.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfCommentRecord.java index 2f56174264..1f840b8fec 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfCommentRecord.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfCommentRecord.java @@ -36,12 +36,17 @@ public class OmfCommentRecord extends OmfRecord { readRecordHeader(reader); commentType = reader.readNextByte(); commentClass = reader.readNextByte(); - byte[] bytes = reader.readNextByteArray( - getRecordLength() - 3 /* 3 = sizeof(commentType+commentClass+trailing_crcbyte*/); - if (commentClass == COMMENT_CLASS_TRANSLATOR || commentClass == COMMENT_CLASS_LIBMOD || - commentClass == COMMENT_CLASS_DEFAULT_LIBRARY) { - value = new String(bytes, StandardCharsets.US_ASCII); // assuming ASCII + switch (commentClass) { + case COMMENT_CLASS_TRANSLATOR: + case COMMENT_CLASS_DEFAULT_LIBRARY: + byte[] bytes = reader.readNextByteArray(getRecordLength() - + 3 /* 3 = sizeof(commentType+commentClass+trailing_crcbyte*/); + value = new String(bytes, StandardCharsets.US_ASCII); // assuming ASCII + break; + case COMMENT_CLASS_LIBMOD: + value = readString(reader); + break; } readCheckSumByte(reader); } diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfRecord.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfRecord.java index cf7122ba1f..cbabc44114 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfRecord.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/omf/OmfRecord.java @@ -247,6 +247,6 @@ public abstract class OmfRecord { @Override public String toString() { return String.format("name: %s, type: 0x%x, offset: 0x%x, length: 0x%x", - getRecordName(recordType), recordType, recordOffset, recordLength); + getRecordName(recordType & 0xfe), recordType, recordOffset, recordLength); } }