comparison src/evalfunc.c @ 27453:c7f614c9ceb3 v8.2.4255

patch 8.2.4255: theoretical computation overflow Commit: https://github.com/vim/vim/commit/d5cec1f1f055316c353cfa15ad8d5eb0952d50a0 Author: =?UTF-8?q?Dundar=20G=C3=B6c?= <gocdundar@gmail.com> Date: Sat Jan 29 15:19:23 2022 +0000 patch 8.2.4255: theoretical computation overflow Problem: Theoretical computation overflow. Solution: Perform multiplication in a wider type. (closes https://github.com/vim/vim/issues/9657)
author Bram Moolenaar <Bram@vim.org>
date Sat, 29 Jan 2022 16:30:03 +0100
parents 4050f0554902
children 4c16acb2525f
comparison
equal deleted inserted replaced
27452:81af1f0ff8ce 27453:c7f614c9ceb3
7325 if (l->lv_first == &range_list_item) 7325 if (l->lv_first == &range_list_item)
7326 { 7326 {
7327 if ((l->lv_u.nonmat.lv_stride > 0) ^ domax) 7327 if ((l->lv_u.nonmat.lv_stride > 0) ^ domax)
7328 n = l->lv_u.nonmat.lv_start; 7328 n = l->lv_u.nonmat.lv_start;
7329 else 7329 else
7330 n = l->lv_u.nonmat.lv_start + (l->lv_len - 1) 7330 n = l->lv_u.nonmat.lv_start + ((varnumber_T)l->lv_len - 1)
7331 * l->lv_u.nonmat.lv_stride; 7331 * l->lv_u.nonmat.lv_stride;
7332 } 7332 }
7333 else 7333 else
7334 { 7334 {
7335 li = l->lv_first; 7335 li = l->lv_first;