Mercurial > vim
diff src/testdir/test_substitute.vim @ 27449:b4c147ad4912 v8.2.4253
patch 8.2.4253: using freed memory when substitute with function call
Commit: https://github.com/vim/vim/commit/37f47958b8a2a44abc60614271d9537e7f14e51a
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jan 29 14:21:51 2022 +0000
patch 8.2.4253: using freed memory when substitute with function call
Problem: Using freed memory when substitute uses a recursive function call.
Solution: Make a copy of the substitute text.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 29 Jan 2022 15:30:04 +0100 |
parents | 28f1b7c38ba1 |
children | 40e35cefeac6 |
line wrap: on
line diff
--- a/src/testdir/test_substitute.vim +++ b/src/testdir/test_substitute.vim @@ -980,4 +980,21 @@ func Test_substitute_gdefault() bw! endfunc +" This was using "old_sub" after it was freed. +func Test_using_old_sub() + set compatible maxfuncdepth=10 + new + call setline(1, 'some text.') + func Repl() + ~ + s/ + endfunc + silent! s/\%')/\=Repl() + + delfunc Repl + bwipe! + set nocompatible +endfunc + + " vim: shiftwidth=2 sts=2 expandtab