Mercurial > vim
view src/testdir/test77a.in @ 34372:d8c69a773456 v9.1.0115
patch 9.1.0115: Using freed memory with full tag stack and user data
Commit: https://github.com/vim/vim/commit/c86bff1771ed9c340f8f4433ae5530fd6de97980
Author: zeertzjq <zeertzjq@outlook.com>
Date: Sun Feb 18 18:53:08 2024 +0100
patch 9.1.0115: Using freed memory with full tag stack and user data
Problem: Using freed memory with full tag stack and user data
(Konstantin Khlebnikov)
Solution: Clear the user data pointer of the newest entry.
(zeertzjq, Konstantin Khlebnikov)
fixes: neovim/neovim#27498
closes: #14053
Co-authored-by: Konstantin Khlebnikov koct9i@gmail.com
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Konstantin Khlebnikov koct9i@gmail.com
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 18 Feb 2024 19:00:03 +0100 |
parents | e705ea6e855b |
children |
line wrap: on
line source
Inserts 2 million lines with consecutive integers starting from 1 (essentially, the output of GNU's seq 1 2000000), writes them to Xtest and writes its cksum to test.out. We need 2 million lines to trigger a call to mf_hash_grow(). If it would mess up the lines the checksum would differ. cksum is part of POSIX and so should be available on most Unixes. If it isn't available then the test will be skipped. VMS does not have CKSUM but has a built in CHECKSUM - it should be used STARTTEST :silent! while 0 : e! test.ok : w! test.out : qa! :silent! endwhile :if !has("vms") : e! test.ok : w! test.out : qa! :endif :set fileformat=unix undolevels=-1 ggdG :let i = 1 :while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhile ggdd :w! Xtest. :r !@test77a.com Xtest. :s/\s/ /g :set fileformat& :.w! test.out :qa! ENDTEST