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