From 6828c7c077c03b76e76d369526a125dd73cbc40e Mon Sep 17 00:00:00 2001 From: Justus Garbe <55301990+jumanji144@users.noreply.github.com> Date: Sun, 16 Feb 2025 00:52:30 +0100 Subject: [PATCH] fix: crash when disassembler encounters invalid instructions (#2116) --- .../disassembler/source/content/views/view_disassembler.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/disassembler/source/content/views/view_disassembler.cpp b/plugins/disassembler/source/content/views/view_disassembler.cpp index 32e08efb7..f279bf53d 100644 --- a/plugins/disassembler/source/content/views/view_disassembler.cpp +++ b/plugins/disassembler/source/content/views/view_disassembler.cpp @@ -80,6 +80,9 @@ namespace hex::plugin::disasm { disassembly.push_back(instruction.value()); + if (instruction->size == 0 || instruction->size > code.size()) + break; + code = code.subspan(instruction->size); instructionDataAddress += instruction->size; instructionLoadAddress += instruction->size;