aboutsummaryrefslogtreecommitdiff
path: root/test/functional/core/fileio_spec.lua
diff options
context:
space:
mode:
authorJavier Lopez <graulopezjavier@gmail.com>2021-11-23 23:07:47 -0500
committerGitHub <noreply@github.com>2021-11-23 21:07:47 -0700
commita2e5c2f7c8ec2b236a0c33cf9fc3cbab17c6cfcd (patch)
tree741a6d16b8439853e79256b4d475ec18d54b6c54 /test/functional/core/fileio_spec.lua
parentdd8a4e2c22ea8018ce3af989134b1e9c4607ce37 (diff)
downloadrneovim-a2e5c2f7c8ec2b236a0c33cf9fc3cbab17c6cfcd.tar.gz
rneovim-a2e5c2f7c8ec2b236a0c33cf9fc3cbab17c6cfcd.tar.bz2
rneovim-a2e5c2f7c8ec2b236a0c33cf9fc3cbab17c6cfcd.zip
fix(fileio): replace characters over INT_MAX with U+FFFD (#16354)
fixes #11877 credit: @zubairabid https://github.com/neovim/neovim/pull/12010
Diffstat (limited to 'test/functional/core/fileio_spec.lua')
-rw-r--r--test/functional/core/fileio_spec.lua9
1 files changed, 9 insertions, 0 deletions
diff --git a/test/functional/core/fileio_spec.lua b/test/functional/core/fileio_spec.lua
index f4c476560d..c68bc18eed 100644
--- a/test/functional/core/fileio_spec.lua
+++ b/test/functional/core/fileio_spec.lua
@@ -15,6 +15,7 @@ local read_file = helpers.read_file
local trim = helpers.trim
local currentdir = helpers.funcs.getcwd
local iswin = helpers.iswin
+local assert_alive = helpers.assert_alive
describe('fileio', function()
before_each(function()
@@ -26,6 +27,7 @@ describe('fileio', function()
os.remove('Xtest_startup_file1~')
os.remove('Xtest_startup_file2')
os.remove('Xtest_ั‚ะตัั‚.md')
+ os.remove('Xtest-u8-int-max')
rmdir('Xtest_startup_swapdir')
rmdir('Xtest_backupdir')
end)
@@ -128,5 +130,12 @@ describe('fileio', function()
table.insert(text, '')
eq(text, funcs.readfile(fname, 'b'))
end)
+ it('read invalid u8 over INT_MAX doesn\'t segfault', function()
+ clear()
+ command('call writefile(0zFFFFFFFF, "Xtest-u8-int-max")')
+ -- This should not segfault
+ command('edit ++enc=utf32 Xtest-u8-int-max')
+ assert_alive()
+ end)
end)