mirror of
https://github.com/neovim/neovim.git
synced 2025-09-15 15:58:17 +00:00
clang/API: reject null string in timer_start()
This commit is contained in:
@@ -7200,9 +7200,13 @@ bool callback_from_typval(Callback *const callback, typval_T *const arg)
|
||||
r = FAIL;
|
||||
} else if (arg->v_type == VAR_FUNC || arg->v_type == VAR_STRING) {
|
||||
char_u *name = arg->vval.v_string;
|
||||
if (name != NULL) {
|
||||
func_ref(name);
|
||||
callback->data.funcref = vim_strsave(name);
|
||||
callback->type = kCallbackFuncref;
|
||||
} else {
|
||||
r = FAIL;
|
||||
}
|
||||
} else if (nlua_is_table_from_lua(arg)) {
|
||||
char_u *name = nlua_register_table_as_callable(arg);
|
||||
|
||||
|
@@ -150,6 +150,7 @@ describe('NULL', function()
|
||||
null_test('does not crash :execute', 'execute S', 0)
|
||||
null_expr_test('does not crash execute()', 'execute(S)', 0, '')
|
||||
null_expr_test('makes executable() error out', 'executable(S)', 'E928: String required', 0)
|
||||
null_expr_test('makes timer_start() error out', 'timer_start(0, S)', 'E921: Invalid callback argument', -1)
|
||||
null_expr_test('does not crash filereadable()', 'filereadable(S)', 0, 0)
|
||||
null_expr_test('does not crash filewritable()', 'filewritable(S)', 0, 0)
|
||||
null_expr_test('does not crash fnamemodify()', 'fnamemodify(S, S)', 0, '')
|
||||
@@ -162,7 +163,6 @@ describe('NULL', function()
|
||||
null_expr_test('does not crash mkdir()', 'mkdir(S)', 0, 0)
|
||||
null_expr_test('does not crash sort()', 'sort(["b", S, "a"])', 0, {'', 'a', 'b'})
|
||||
null_expr_test('does not crash split()', 'split(S)', 0, {})
|
||||
|
||||
null_test('can be used to set an option', 'let &grepprg = S', 0)
|
||||
|
||||
null_expr_test('is equal to non-existent variable', 'S == V', 0, 1)
|
||||
|
Reference in New Issue
Block a user