From: Luca Boccassi Date: Sat, 28 Mar 2026 21:20:39 +0000 (+0000) Subject: repart: add assert for offset + current_size overflow safety X-Git-Tag: v261-rc1~683^2~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=96b085c4beb48fe5e3fbed0e13462ca302d0a283;p=thirdparty%2Fsystemd.git repart: add assert for offset + current_size overflow safety Coverity flags a->after->offset + a->after->current_size as a potential overflow. Both values are validated as not UINT64_MAX by existing asserts, add an explicit overflow check to document the invariant for static analyzers. CID#1548063 Follow-up for e594a3b154bd06c535a934a1cc7231b1ef76df73 --- diff --git a/src/repart/repart.c b/src/repart/repart.c index d672db6d266..7a8bc00919e 100644 --- a/src/repart/repart.c +++ b/src/repart/repart.c @@ -1247,6 +1247,8 @@ static uint64_t free_area_current_end(Context *context, const FreeArea *a) { assert(a->after->offset != UINT64_MAX); assert(a->after->current_size != UINT64_MAX); + /* Silence static analyzers */ + assert(a->after->current_size <= UINT64_MAX - a->after->offset); /* Calculate where the free area ends, based on the offset of the partition preceding it. */ return round_up_size(a->after->offset + a->after->current_size, context->grain_size) + free_area_available(a);