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.

Raspunde prin e-mail lui