From: Yee Cheng Chin Date: Sun, 23 Nov 2025 19:24:10 +0000 (+0000) Subject: patch 9.1.1926: xdiff: Coverity warning with MAX_CNT/UINT_MAX usage X-Git-Tag: v9.1.1926^0 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cf7c0038a4c999409264559c085a7c8d293cdf8a;p=thirdparty%2Fvim.git patch 9.1.1926: xdiff: Coverity warning with MAX_CNT/UINT_MAX usage Problem: xdiff: Coverity warning with MAX_CNT/UINT_MAX usage (after v9.1.1921) Solution: Replace XDL_MIN macro to a manual check. (Yee Cheng Chin) In the recent xdiff upstream sync (#18765), MAX_CNT in xhistogram was switched back to using UINT_MAX to match upstream. This exposed an issue in xdiff that using using min() to compare against the max integer will not work as the number will just overflow. Switch the check to be done in a saturating add that respects integer overflow. related: #18765 closes: #18792 Signed-off-by: Yee Cheng Chin Signed-off-by: Christian Brabandt --- diff --git a/src/version.c b/src/version.c index a02a9e2d84..b34018b852 100644 --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1926, /**/ 1925, /**/ diff --git a/src/xdiff/xhistogram.c b/src/xdiff/xhistogram.c index 6dc450b1fe..50f208c9f0 100644 --- a/src/xdiff/xhistogram.c +++ b/src/xdiff/xhistogram.c @@ -122,7 +122,7 @@ static int scanA(struct histindex *index, int line1, int count1) NEXT_PTR(index, ptr) = rec->ptr; rec->ptr = ptr; /* cap rec->cnt at MAX_CNT */ - rec->cnt = XDL_MIN(MAX_CNT, rec->cnt + 1); + rec->cnt = (rec->cnt < MAX_CNT) ? rec->cnt + 1 : rec->cnt; LINE_MAP(index, ptr) = rec; goto continue_scan; }