From: Bram Moolenaar Date: Thu, 5 Aug 2021 13:11:08 +0000 (+0200) Subject: patch 8.2.3291: Coverity warns for not checking return value X-Git-Tag: v8.2.3291 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4a01159da23a279005b7c5042a15af47eb9617fe;p=vim patch 8.2.3291: Coverity warns for not checking return value Problem: Coverity warns for not checking return value. Solution: If dict_add() fails give an error message. --- diff --git a/src/if_lua.c b/src/if_lua.c index bcd0b02f9..144fcbea5 100644 --- a/src/if_lua.c +++ b/src/if_lua.c @@ -1862,7 +1862,8 @@ luaV_setvar(lua_State *L) return 0; // Update the value copy_tv(&tv, &di->di_tv); - dict_add(dict, di); + if (dict_add(dict, di) == FAIL) + return luaL_error(L, "Couldn't add to dictionary"); } else { // Clear the old value diff --git a/src/testdir/test_lua.vim b/src/testdir/test_lua.vim index 953e8a9b6..94e3ceccc 100644 --- a/src/testdir/test_lua.vim +++ b/src/testdir/test_lua.vim @@ -1009,6 +1009,10 @@ func Test_lua_global_var_table() call assert_fails('lua vim.g.Var2[3] = 21', 'list is locked') unlockvar g:Var2 + let g:TestFunc = function('len') + call assert_fails('lua vim.g.func = vim.g.TestFunc', ['E704:', 'Couldn''t add to dictionary']) + unlet g:TestFunc + " Attempt to access a non-existing global variable call assert_equal(v:null, luaeval('vim.g.NonExistingVar')) lua vim.g.NonExisting = Nil diff --git a/src/version.c b/src/version.c index 905bc4eec..b88b7503a 100644 --- a/src/version.c +++ b/src/version.c @@ -755,6 +755,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 3291, /**/ 3290, /**/