From 22a97fc241361aa91bda84e5344d5b7c0cda3e81 Mon Sep 17 00:00:00 2001 From: Christian Brabandt Date: Sun, 19 Nov 2023 10:45:24 +0100 Subject: 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 Signed-off-by: Michael Henry Signed-off-by: Ernie Rael --- src/ops.c | 14 ++++++-------- src/version.c | 2 ++ 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/ops.c b/src/ops.c index ecd7fc2170..9e8ea86160 100644 --- a/src/ops.c +++ b/src/ops.c @@ -249,25 +249,23 @@ 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; - } + count += (long long)sw_val * (long long)amount; } + if (count > INT_MAX) + count = INT_MAX; + // Set new indent if (State & VREPLACE_FLAG) change_indent(INDENT_SET, (int)count, FALSE, NUL, call_changed_bytes); diff --git a/src/version.c b/src/version.c index 249cd11d20..00b532075c 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2113, /**/ 2112, /**/ -- cgit v1.2.3