summaryrefslogtreecommitdiff
path: root/src/list.c
diff options
context:
space:
mode:
author=?UTF-8?q?Dundar=20G=C3=B6c?= <gocdundar@gmail.com>2022-01-29 15:19:23 +0000
committerBram Moolenaar <Bram@vim.org>2022-01-29 15:19:23 +0000
commitd5cec1f1f055316c353cfa15ad8d5eb0952d50a0 (patch)
tree94d3ad44783e3442be7293edb3d5890ac08f0377 /src/list.c
parentf12b7815f6b55c3e2f37366aa45e723b1fcb2e9a (diff)
downloadvim-git-d5cec1f1f055316c353cfa15ad8d5eb0952d50a0.tar.gz
patch 8.2.4255: theoretical computation overflowv8.2.4255
Problem: Theoretical computation overflow. Solution: Perform multiplication in a wider type. (closes #9657)
Diffstat (limited to 'src/list.c')
-rw-r--r--src/list.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/list.c b/src/list.c
index f4fddbdf7..ff7d5ab9b 100644
--- a/src/list.c
+++ b/src/list.c
@@ -2902,7 +2902,7 @@ list_reverse(list_T *l, typval_T *rettv)
if (l->lv_first == &range_list_item)
{
varnumber_T new_start = l->lv_u.nonmat.lv_start
- + (l->lv_len - 1) * l->lv_u.nonmat.lv_stride;
+ + ((varnumber_T)l->lv_len - 1) * l->lv_u.nonmat.lv_stride;
l->lv_u.nonmat.lv_end = new_start
- (l->lv_u.nonmat.lv_end - l->lv_u.nonmat.lv_start);
l->lv_u.nonmat.lv_start = new_start;