From cda38d2876d6a12e9b52fcdd1e006744e1037e57 Mon Sep 17 00:00:00 2001 From: stefanrueger Date: Wed, 22 Oct 2025 22:40:42 +0200 Subject: [PATCH] Ensure memory segments stay within bounds --- src/fileio.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/fileio.c b/src/fileio.c index e0754f6a..c0feeac5 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -1701,6 +1701,12 @@ int segment_normalise(const AVRMEM *mem, Segment *segp) { return -1; } + if(len > 0 && addr+len-1 >= maxsize) { + pmsg_error("segment length %d with starting address 0x%0*x reaches beyond memory end 0x%0*x\n", + segp->len, digits, addr, digits, maxsize-1); + return -1; + } + segp->addr = addr; segp->len = len;