diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-11-17 08:40:02 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-17 08:40:02 +0800 |
commit | 6952b1951b6a60df8d477279f4451094fb51c413 (patch) | |
tree | b9ef8b5821c4c263f6d390ffeb4fa15b5f3ee2e4 /src/nvim/change.c | |
parent | 133a592d191719023a9151a489d80fcdbed93ed7 (diff) | |
download | rneovim-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.c | 6 |
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; } |