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

Commit: 
https://github.com/vim/vim/commit/22a97fc241361aa91bda84e5344d5b7c0cda3e81
Author: Christian Brabandt <[email protected]>
Date:   Sun Nov 19 10:45:24 2023 +0100

    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 <[email protected]>
    Signed-off-by: Michael Henry <[email protected]>
    Signed-off-by: Ernie Rael <[email protected]>

diff --git a/src/ops.c b/src/ops.c
index ecd7fc217..9e8ea8616 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 249cd11d2..00b532075 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,
 /**/

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/E1r4eb0-001SRe-DP%40256bit.org.

Raspunde prin e-mail lui