0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 9.0.2113: Coverity warns for another overflow in shift_line()

Problem:  Coverity warns for another overflow in shift_line()
Solution: Test for INT_MAX after the if condition, cast integer values
          to (long long) before multiplying.

Signed-off-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Michael Henry <vim@drmikehenry.com>
Signed-off-by: Ernie Rael <errael@raelity.com>
This commit is contained in:
Christian Brabandt 2023-11-19 10:45:24 +01:00
parent ab4f27e2a8
commit 22a97fc241
No known key found for this signature in database
GPG Key ID: F3F92DA383FDDE09
2 changed files with 8 additions and 8 deletions

View File

@ -249,24 +249,22 @@ shift_line(
}
else
i += amount;
count = i * sw_val;
count = (long long)i * (long long)sw_val;
}
else // original vi indent
{
if (left)
{
count -= sw_val * amount;
count -= (long long)sw_val * (long long)amount;
if (count < 0)
count = 0;
}
else
{
if ((long long)sw_val * (long long)amount > INT_MAX - count)
count = INT_MAX;
else
count += (long long)sw_val * (long long)amount;
}
}
if (count > INT_MAX)
count = INT_MAX;
// Set new indent
if (State & VREPLACE_FLAG)

View File

@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
2113,
/**/
2112,
/**/