LibX86: Make Instruction::length work for invalid instructions

This commit is contained in:
Simon Wanner 2022-03-25 22:16:36 +01:00 committed by Andreas Kling
commit c5681e06c6
Notes: sideshowbarker 2024-07-17 04:02:16 +09:00

View file

@ -872,7 +872,7 @@ ALWAYS_INLINE unsigned Instruction::length() const
unsigned len = 1; unsigned len = 1;
if (has_sub_op()) if (has_sub_op())
++len; ++len;
if (m_descriptor->has_rm) { if (m_descriptor && m_descriptor->has_rm) {
++len; ++len;
if (m_modrm.m_has_sib) if (m_modrm.m_has_sib)
++len; ++len;
@ -993,6 +993,7 @@ ALWAYS_INLINE Instruction::Instruction(InstructionStreamType& stream, OperandSiz
warnln("Instruction {:02X} not understood", m_op); warnln("Instruction {:02X} not understood", m_op);
} }
m_descriptor = nullptr; m_descriptor = nullptr;
m_extra_bytes = prefix_bytes;
return; return;
} }