소스 검색

LibX86: Make Instruction::length work for invalid instructions

Simon Wanner 3 년 전
부모
커밋
c5681e06c6
1개의 변경된 파일2개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 1
      Userland/Libraries/LibX86/Instruction.h

+ 2 - 1
Userland/Libraries/LibX86/Instruction.h

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