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 -- [email protected] -- 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 ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.