aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/change.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-11-17 08:40:02 +0800
committerGitHub <noreply@github.com>2023-11-17 08:40:02 +0800
commit6952b1951b6a60df8d477279f4451094fb51c413 (patch)
treeb9ef8b5821c4c263f6d390ffeb4fa15b5f3ee2e4 /src/nvim/change.c
parent133a592d191719023a9151a489d80fcdbed93ed7 (diff)
downloadrneovim-6952b1951b6a60df8d477279f4451094fb51c413.tar.gz
rneovim-6952b1951b6a60df8d477279f4451094fb51c413.tar.bz2
rneovim-6952b1951b6a60df8d477279f4451094fb51c413.zip
vim-patch:9.0.2107: [security]: FPE in adjust_plines_for_skipcol (#26082)
Problem: [security]: FPE in adjust_plines_for_skipcol Solution: don't divide by zero, return zero Prevent a floating point exception when calculating w_skipcol (which can happen with a small window when the number option is set and cpo+=n). Add a test to verify https://github.com/vim/vim/commit/cb0b99f0672d8446585d26e998343dceca17d1ce Co-authored-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src/nvim/change.c')
-rw-r--r--src/nvim/change.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/nvim/change.c b/src/nvim/change.c
index 46c21da384..58718811bc 100644
--- a/src/nvim/change.c
+++ b/src/nvim/change.c
@@ -262,9 +262,9 @@ static void changed_common(buf_T *buf, linenr_T lnum, colnr_T col, linenr_T lnum
&& (last < wp->w_topline
|| (wp->w_topline >= lnum
&& wp->w_topline < lnume
- && win_linetabsize(wp, wp->w_topline, ml_get(wp->w_topline), (colnr_T)MAXCOL)
- <= (unsigned)(wp->w_skipcol + sms_marker_overlap(wp, win_col_off(wp)
- - win_col_off2(wp)))))) {
+ && win_linetabsize(wp, wp->w_topline, ml_get(wp->w_topline), MAXCOL)
+ <= (wp->w_skipcol
+ + sms_marker_overlap(wp, win_col_off(wp) - win_col_off2(wp)))))) {
wp->w_skipcol = 0;
}