diff --git a/Source/Core/Core/DSP/DSPDisassembler.cpp b/Source/Core/Core/DSP/DSPDisassembler.cpp index ce911aeca9..af736cad2a 100644 --- a/Source/Core/Core/DSP/DSPDisassembler.cpp +++ b/Source/Core/Core/DSP/DSPDisassembler.cpp @@ -27,6 +27,12 @@ DSPDisassembler::DSPDisassembler(const AssemblerSettings& settings) : settings_( bool DSPDisassembler::Disassemble(const std::vector& code, std::string& text) { + if (code.size() > std::numeric_limits::max()) + { + text.append("; code too large for 16-bit addressing\n"); + return false; + } + for (u16 pc = 0; pc < code.size();) { if (!DisassembleOpcode(code.data(), &pc, text))