Mercurial > vim
diff src/testdir/test_partial.vim @ 8855:b76195a1e38e v7.4.1715
commit https://github.com/vim/vim/commit/ddecc25947dbdd689d5bcaed32f298a08abdd497
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Apr 6 22:59:37 2016 +0200
patch 7.4.1715
Problem: Double free when a partial is in a cycle with a list or dict.
(Nikolai Pavlov)
Solution: Do not free a nested list or dict used by the partial.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 06 Apr 2016 23:00:05 +0200 |
parents | a5224eeb3546 |
children | e1b84109506a |
line wrap: on
line diff
--- a/src/testdir/test_partial.vim +++ b/src/testdir/test_partial.vim @@ -220,3 +220,21 @@ func Test_bind_in_python() endtry endif endfunc + +" This causes double free on exit if EXITFREE is defined. +func Test_cyclic_list_arg() + let l = [] + let Pt = function('string', [l]) + call add(l, Pt) + unlet l + unlet Pt +endfunc + +" This causes double free on exit if EXITFREE is defined. +func Test_cyclic_dict_arg() + let d = {} + let Pt = function('string', [d]) + let d.Pt = Pt + unlet d + unlet Pt +endfunc