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 bcd0b02..144fcbe 100644
--- a/src/if_lua.c
+++ b/src/if_lua.c
@@ -1862,7 +1862,8 @@
 		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 953e8a9..94e3cec 100644
--- a/src/testdir/test_lua.vim
+++ b/src/testdir/test_lua.vim
@@ -1009,6 +1009,10 @@
   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 905bc4e..b88b750 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3291,
+/**/
     3290,
 /**/
     3289,