From 6c93ae8d4f1955020adedfa67a43478dba854ab0 Mon Sep 17 00:00:00 2001 From: Ralph Ronnquist Date: Thu, 11 Aug 2022 01:39:54 +1000 Subject: [PATCH] fixup of ocerlay_merge --- fusefile.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/fusefile.c b/fusefile.c index f74632a..30ec7fa 100644 --- a/fusefile.c +++ b/fusefile.c @@ -416,14 +416,17 @@ static int overlay_merge(char *buf,off_t off,size_t size) { p = 0; } for ( ; p < overlay.count && BEG(p) < off+size; p++ ) { + if ( END(p) < off ) { + continue; + } size_t delta = FRAG(p)->size; - if ( BEG(p) > off ) { + if ( BEG(p) < off ) { + delta -= off - BEG(p); + } else { size_t skip = BEG(p) - off; off += skip; size -= skip; buf += skip; - } else { - delta = off - BEG(p); } if ( delta > size ) { delta = size; -- 2.39.2