diff src/globals.h @ 21979:a98211c3e14e v8.2.1539

patch 8.2.1539: using invalid script ID causes a crash Commit: https://github.com/vim/vim/commit/e3d4685f1f716e0c516332101d85e0930f20fc59 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Aug 29 13:39:17 2020 +0200 patch 8.2.1539: using invalid script ID causes a crash Problem: Using invalid script ID causes a crash. Solution: Check the script ID to be valid. (closes https://github.com/vim/vim/issues/6804)
author Bram Moolenaar <Bram@vim.org>
date Sat, 29 Aug 2020 13:45:03 +0200
parents 3e5d0832a2e7
children f55cba26348f
line wrap: on
line diff
--- a/src/globals.h
+++ b/src/globals.h
@@ -297,8 +297,9 @@ EXTERN int	do_profiling INIT(= PROF_NONE
 # endif
 EXTERN garray_T script_items INIT5(0, 0, sizeof(scriptitem_T *), 20, NULL);
 # define SCRIPT_ITEM(id)    (((scriptitem_T **)script_items.ga_data)[(id) - 1])
-# define SCRIPT_SV(id)	    (SCRIPT_ITEM(id)->sn_vars)
-# define SCRIPT_VARS(id)    (SCRIPT_SV(id)->sv_dict.dv_hashtab)
+# define SCRIPT_ID_VALID(id)    ((id) > 0 && (id) <= script_items.ga_len)
+# define SCRIPT_SV(id)		(SCRIPT_ITEM(id)->sn_vars)
+# define SCRIPT_VARS(id)	(SCRIPT_SV(id)->sv_dict.dv_hashtab)
 
 # define FUNCLINE(fp, j)	((char_u **)(fp->uf_lines.ga_data))[j]