To: vim_dev@googlegroups.com Subject: Patch 7.4.1647 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.1647 Problem: Using freed memory after setqflist() and ":caddbuffer". (Dominique) Solution: Set qf_ptr when adding the first item to the quickfix list. Files: src/quickfix.c, src/testdir/test_quickfix.c *** ../vim-7.4.1646/src/quickfix.c 2016-03-23 20:55:22.823036742 +0100 --- src/quickfix.c 2016-03-25 14:57:49.050601009 +0100 *************** *** 1027,1032 **** --- 1027,1034 ---- /* first element in the list */ { qi->qf_lists[qi->qf_curlist].qf_start = qfp; + qi->qf_lists[qi->qf_curlist].qf_ptr = qfp; + qi->qf_lists[qi->qf_curlist].qf_index = 0; qfp->qf_prev = qfp; /* first element points to itself */ } else *************** *** 4113,4119 **** else qi->qf_lists[qi->qf_curlist].qf_nonevalid = FALSE; qi->qf_lists[qi->qf_curlist].qf_ptr = qi->qf_lists[qi->qf_curlist].qf_start; ! qi->qf_lists[qi->qf_curlist].qf_index = 1; #ifdef FEAT_WINDOWS qf_update_buffer(qi); --- 4115,4122 ---- else qi->qf_lists[qi->qf_curlist].qf_nonevalid = FALSE; qi->qf_lists[qi->qf_curlist].qf_ptr = qi->qf_lists[qi->qf_curlist].qf_start; ! if (qi->qf_lists[qi->qf_curlist].qf_count > 0) ! qi->qf_lists[qi->qf_curlist].qf_index = 1; #ifdef FEAT_WINDOWS qf_update_buffer(qi); *** ../vim-7.4.1646/src/testdir/test_quickfix.vim 2016-03-23 20:55:22.823036742 +0100 --- src/testdir/test_quickfix.vim 2016-03-25 14:58:54.025936957 +0100 *************** *** 679,681 **** --- 679,689 ---- call XquickfixChangedByAutocmd('c') call XquickfixChangedByAutocmd('l') endfunction + + func Test_caddbuffer_to_empty() + helpgr quickfix + call setqflist([], 'r') + cad + call assert_fails('cn', 'E553:') + quit! + endfunc *** ../vim-7.4.1646/src/version.c 2016-03-24 21:58:06.944204211 +0100 --- src/version.c 2016-03-25 14:59:25.421616106 +0100 *************** *** 750,751 **** --- 750,753 ---- { /* Add new patch number below this line */ + /**/ + 1647, /**/ -- hundred-and-one symptoms of being an internet addict: 117. You are more comfortable typing in html. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///