Mercurial > vim
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; |