changeset 25509:7ed54019fbb8 v8.2.3291

patch 8.2.3291: Coverity warns for not checking return value Commit: https://github.com/vim/vim/commit/4a01159da23a279005b7c5042a15af47eb9617fe Author: Bram Moolenaar <Bram@vim.org> 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.
author Bram Moolenaar <Bram@vim.org>
date Thu, 05 Aug 2021 15:15:06 +0200
parents 9ab962623872
children d390d493f704
files src/if_lua.c src/testdir/test_lua.vim src/version.c
diffstat 3 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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
--- 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,