neovim/test/functional/eval/modeline_spec.lua
Florian Larysch 2a6c5bb0c4 modeline: Handle version number overflow. #5450
Closes #5449

A file containing the string "vim" followed by a very large number in a modeline
location will trigger an overflow in getdigits() which is called by
chk_modeline() when trying to parse the version number.

Add getdigits_safe(), which does not assert overflows, but reports them to the
caller.
2016-10-26 13:05:25 +02:00

20 lines
541 B
Lua

local helpers = require('test.functional.helpers')(after_each)
local clear, execute, write_file = helpers.clear, helpers.execute, helpers.write_file
local eq, eval = helpers.eq, helpers.eval
describe("modeline", function()
local tempfile = helpers.tmpname()
before_each(clear)
after_each(function()
os.remove(tempfile)
end)
it('does not crash with a large version number', function()
write_file(tempfile, 'vim100000000000000000000000')
execute('e! ' .. tempfile)
eq(2, eval('1+1')) -- Still alive?
end)
end)