From 4c20ceb94e4f499337fc38dc7664041647fad540 Mon Sep 17 00:00:00 2001 From: Stephen Hewitt Date: Tue, 24 Jun 2025 20:51:20 +1000 Subject: [PATCH] Issue 2196 disassembler upper bound (#2272) Issue #2196: Disassembler region range upper bound not inclusive ### Problem description The issue is described [here](https://github.com/WerWolv/ImHex/issues/2196) ### Implementation description Some off by 1s Co-authored-by: paxcut <53811119+paxcut@users.noreply.github.com> --- .../disassembler/source/content/views/view_disassembler.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/disassembler/source/content/views/view_disassembler.cpp b/plugins/disassembler/source/content/views/view_disassembler.cpp index 792c173d9..d0a1c4981 100644 --- a/plugins/disassembler/source/content/views/view_disassembler.cpp +++ b/plugins/disassembler/source/content/views/view_disassembler.cpp @@ -68,9 +68,9 @@ namespace hex::plugin::disasm { u64 instructionDataAddress = region.getStartAddress(); bool hadError = false; - while (instructionDataAddress < region.getEndAddress()) { + while (instructionDataAddress <= region.getEndAddress()) { // Read a chunk of data - size_t bufferSize = std::min(buffer.size(), (region.getEndAddress() - instructionDataAddress)); + size_t bufferSize = std::min(buffer.size(), (region.getEndAddress()-instructionDataAddress)+1); provider->read(instructionDataAddress, buffer.data(), bufferSize); auto code = std::span(buffer.data(), bufferSize);