# HG changeset patch # User Bram Moolenaar # Date 1628169306 -7200 # Node ID 7ed54019fbb8edb2fc87f60b1e0be0f228b1d91c # Parent 9ab962623872f56014736febd5d6e39c16196f1c patch 8.2.3291: Coverity warns for not checking return value Commit: https://github.com/vim/vim/commit/4a01159da23a279005b7c5042a15af47eb9617fe Author: Bram Moolenaar Date: Thu Aug 5 15:11:08 2021 +0200 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 --- 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 --- 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 --- a/src/version.c +++ b/src/version.c @@ -756,6 +756,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 3291, +/**/ 3290, /**/ 3289,