diff src/vim9script.c @ 20881:58137dbee8da v8.2.0992

patch 8.2.0992: Vim9: crash when using :import in the Vim command Commit: https://github.com/vim/vim/commit/101f4810e27e432970bc8809e18f018e1795937f Author: Bram Moolenaar <Bram@vim.org> Date: Tue Jun 16 23:18:51 2020 +0200 patch 8.2.0992: Vim9: crash when using :import in the Vim command Problem: Vim9: crash when using :import in the Vim command. Solution: Give an error when using :import outside of a script. (closes #6271)
author Bram Moolenaar <Bram@vim.org>
date Tue, 16 Jun 2020 23:30:04 +0200
parents 709379ab5110
children 96bf2b304932
line wrap: on
line diff
--- a/src/vim9script.c
+++ b/src/vim9script.c
@@ -32,13 +32,14 @@ in_vim9script(void)
     void
 ex_vim9script(exarg_T *eap)
 {
-    scriptitem_T    *si = SCRIPT_ITEM(current_sctx.sc_sid);
+    scriptitem_T    *si;
 
     if (!getline_equal(eap->getline, eap->cookie, getsourceline))
     {
 	emsg(_("E1038: vim9script can only be used in a script"));
 	return;
     }
+    si = SCRIPT_ITEM(current_sctx.sc_sid);
     if (si->sn_had_command)
     {
 	emsg(_("E1039: vim9script must be the first command in a script"));
@@ -141,8 +142,15 @@ free_imports(int sid)
     void
 ex_import(exarg_T *eap)
 {
-    char_u *cmd_end = handle_import(eap->arg, NULL, current_sctx.sc_sid, NULL);
+    char_u *cmd_end;
 
+    if (!getline_equal(eap->getline, eap->cookie, getsourceline))
+    {
+	emsg(_("E1094: import can only be used in a script"));
+	return;
+    }
+
+    cmd_end = handle_import(eap->arg, NULL, current_sctx.sc_sid, NULL);
     if (cmd_end != NULL)
 	eap->nextcmd = check_nextcmd(cmd_end);
 }