Mercurial > vim
comparison 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 |
comparison
equal
deleted
inserted
replaced
23540:f13918b6b8de | 23541:a2a38bc68dd9 |
---|---|
3146 | 3146 |
3147 if (GA_GROW(&ectx.ec_stack, 1) == FAIL) | 3147 if (GA_GROW(&ectx.ec_stack, 1) == FAIL) |
3148 goto failed; | 3148 goto failed; |
3149 ++ectx.ec_stack.ga_len; | 3149 ++ectx.ec_stack.ga_len; |
3150 tv = STACK_TV_BOT(-1); | 3150 tv = STACK_TV_BOT(-1); |
3151 ea.line2 = 0; | |
3151 ea.addr_count = 0; | 3152 ea.addr_count = 0; |
3152 ea.addr_type = ADDR_LINES; | 3153 ea.addr_type = ADDR_LINES; |
3153 ea.cmd = iptr->isn_arg.string; | 3154 ea.cmd = iptr->isn_arg.string; |
3155 ea.skip = FALSE; | |
3154 if (parse_cmd_address(&ea, &errormsg, FALSE) == FAIL) | 3156 if (parse_cmd_address(&ea, &errormsg, FALSE) == FAIL) |
3155 goto failed; | 3157 goto on_error; |
3156 if (ea.addr_count == 0) | 3158 if (ea.addr_count == 0) |
3157 tv->vval.v_number = curwin->w_cursor.lnum; | 3159 tv->vval.v_number = curwin->w_cursor.lnum; |
3158 else | 3160 else |
3159 tv->vval.v_number = ea.line2; | 3161 tv->vval.v_number = ea.line2; |
3160 } | 3162 } |