diff src/testdir/test_quickfix.vim @ 10379:73e2a7abe2a3 v8.0.0084

commit https://github.com/vim/vim/commit/7618e00d3b8bfe064cfc524640d754607361f9df Author: Bram Moolenaar <Bram@vim.org> Date: Sun Nov 13 15:09:26 2016 +0100 patch 8.0.0084 Problem: Using freed memory when adding to a quickfix list. (Domenique Pelle) Solution: Clear the directory name.
author Christian Brabandt <cb@256bit.org>
date Sun, 13 Nov 2016 15:15:03 +0100
parents 4e5b307638cb
children 9d40a98f0834
line wrap: on
line diff
--- a/src/testdir/test_quickfix.vim
+++ b/src/testdir/test_quickfix.vim
@@ -1669,3 +1669,25 @@ func Test_caddexpr_wrong()
   call assert_fails('caddexpr ""', 'E376:')
   let &efm = save_efm
 endfunc
+
+func Test_dirstack_cleanup()
+  " This used to cause a memory access in freed memory.
+  let save_efm = &efm
+  lexpr '0'
+  lopen
+  fun X(c)
+    let save_efm=&efm
+    set efm=%D%f
+    if a:c == 'c'
+      caddexpr '::'
+    else
+      laddexpr ':0:0'
+    endif
+    let &efm=save_efm
+  endfun
+  call X('c')
+  call X('l')
+  call setqflist([], 'r')
+  caddbuffer
+  let &efm = save_efm
+endfunc