From 7dab92d8b568db8b4fc208614d23ae696029389a Mon Sep 17 00:00:00 2001 From: Michael Maltese Date: Fri, 30 Jun 2017 01:45:33 -0700 Subject: [PATCH] DSPDisassembler: fail when buffer too large --- Source/Core/Core/DSP/DSPDisassembler.cpp | 6 ++++++ 1 file changed, 6 insertions(+) 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))