To: vim_dev@googlegroups.com Subject: Patch 9.0.0598 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 9.0.0598 Problem: Using negative array index with negative width window. Solution: Make sure the window width does not become negative. Files: src/window.c, src/testdir/test_cmdwin.vim *** ../vim-9.0.0597/src/window.c 2022-09-23 12:56:49.305714732 +0100 --- src/window.c 2022-09-26 23:00:19.267673604 +0100 *************** *** 2089,2094 **** --- 2089,2096 ---- if (hnc) // add next_curwin size { next_curwin_size -= p_wiw - (m - n); + if (next_curwin_size < 0) + next_curwin_size = 0; new_size += next_curwin_size; room -= new_size - next_curwin_size; } *************** *** 6611,6617 **** void win_new_width(win_T *wp, int width) { ! wp->w_width = width; wp->w_lines_valid = 0; changed_line_abv_curs_win(wp); // Handled in win_fix_scroll() --- 6613,6620 ---- void win_new_width(win_T *wp, int width) { ! // Should we give an error if width < 0? ! wp->w_width = width < 0 ? 0 : width; wp->w_lines_valid = 0; changed_line_abv_curs_win(wp); // Handled in win_fix_scroll() *** ../vim-9.0.0597/src/testdir/test_cmdwin.vim 2022-09-18 15:03:18.351501363 +0100 --- src/testdir/test_cmdwin.vim 2022-09-26 23:00:14.183648820 +0100 *************** *** 404,408 **** --- 404,430 ---- bwipe! endfunc + " This was resulting in a window with negative width. + " The test doesn't reproduce the illegal memory access though... + func Test_cmdwin_split_often() + let lines = &lines + let columns = &columns + set t_WS= + + try + set encoding=iso8859 + set ruler + winsize 0 0 + noremap 0 H + sil norm 0000000q: + catch /E36:/ + endtry + + bwipe! + set encoding=utf8 + let &lines = lines + let &columns = columns + endfunc + " vim: shiftwidth=2 sts=2 expandtab *** ../vim-9.0.0597/src/version.c 2022-09-26 20:48:28.683453345 +0100 --- src/version.c 2022-09-26 23:02:51.600283059 +0100 *************** *** 701,702 **** --- 701,704 ---- { /* Add new patch number below this line */ + /**/ + 598, /**/ -- hundred-and-one symptoms of being an internet addict: 188. You purchase a laptop so you can surf while sitting on the can. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///