diff src/vim9execute.c @ 23541:a2a38bc68dd9 v8.2.2313

patch 8.2.2313: Vim9: using uninitialized field when parsing range Commit: https://github.com/vim/vim/commit/ece0b87c0fb0e35ff4c51f9ba81389f56428e42b Author: Bram Moolenaar <Bram@vim.org> Date: Fri Jan 8 20:40:45 2021 +0100 patch 8.2.2313: Vim9: using uninitialized field when parsing range Problem: Vim9: using uninitialized field when parsing range. ":silent!" not respected when parsing range fails. Solution: Initialize ea.skip. On pattern failure handle it like an error. (closes #7636)
author Bram Moolenaar <Bram@vim.org>
date Fri, 08 Jan 2021 20:45:03 +0100
parents 27ca5534a408
children f90e429453fd
line wrap: on
line diff
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -3148,11 +3148,13 @@ call_def_function(
 			goto failed;
 		    ++ectx.ec_stack.ga_len;
 		    tv = STACK_TV_BOT(-1);
+		    ea.line2 = 0;
 		    ea.addr_count = 0;
 		    ea.addr_type = ADDR_LINES;
 		    ea.cmd = iptr->isn_arg.string;
+		    ea.skip = FALSE;
 		    if (parse_cmd_address(&ea, &errormsg, FALSE) == FAIL)
-			goto failed;
+			goto on_error;
 		    if (ea.addr_count == 0)
 			tv->vval.v_number = curwin->w_cursor.lnum;
 		    else