mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 03:18:16 +00:00
fix(api): nvim_create_autocmd crash on invalid types inside pattern array
Co-authored-by: ii14 <ii14@users.noreply.github.com>
This commit is contained in:
@@ -940,7 +940,7 @@ static bool get_patterns_from_pattern_or_buf(Array *patterns, Object pattern, Ob
|
|||||||
patlen = aucmd_pattern_length(pat);
|
patlen = aucmd_pattern_length(pat);
|
||||||
}
|
}
|
||||||
} else if (v->type == kObjectTypeArray) {
|
} else if (v->type == kObjectTypeArray) {
|
||||||
if (!check_autocmd_string_array(*patterns, "pattern", err)) {
|
if (!check_autocmd_string_array(v->data.array, "pattern", err)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -613,6 +613,20 @@ describe('autocmd api', function()
|
|||||||
eq(false, success)
|
eq(false, success)
|
||||||
matches("'group' must be a string or an integer", code)
|
matches("'group' must be a string or an integer", code)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it('raises error for invalid pattern array', function()
|
||||||
|
local success, code = unpack(meths.exec_lua([[
|
||||||
|
return {pcall(function()
|
||||||
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
|
pattern = {{}},
|
||||||
|
command = "echo 'hello'",
|
||||||
|
})
|
||||||
|
end)}
|
||||||
|
]], {}))
|
||||||
|
|
||||||
|
eq(false, success)
|
||||||
|
matches("All entries in 'pattern' must be strings", code)
|
||||||
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
describe('patterns', function()
|
describe('patterns', function()
|
||||||
|
Reference in New Issue
Block a user