mirror of
https://github.com/vim/vim.git
synced 2025-12-10 18:46:57 -05:00
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 <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
898ac80be6
commit
cf7c0038a4
@ -729,6 +729,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1926,
|
||||
/**/
|
||||
1925,
|
||||
/**/
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user