Mirror of the Vim source from https://github.com/vim/vim
Revision | 2da1753e6a4a0f294b88706c4b6d75550be852a0 (tree) |
---|---|
Time | 2022-08-15 05:30:02 |
Author | Bram Moolenaar <Bram@vim....> |
Commiter | Bram Moolenaar |
patch 9.0.0211: invalid memory access when compiling :lockvar
Commit: https://github.com/vim/vim/commit/d1d8f6bacb489036d0fd479c9dd3c0102c988889
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Aug 14 21:28:32 2022 +0100
@@ -1737,6 +1737,15 @@ | ||
1737 | 1737 | UnLockIt() |
1738 | 1738 | END |
1739 | 1739 | v9.CheckScriptFailure(lines, 'E46', 1) |
1740 | + | |
1741 | + lines =<< trim END | |
1742 | + def _() | |
1743 | + s:0([], s:0) | |
1744 | + lockv | |
1745 | + enddef | |
1746 | + defcomp | |
1747 | + END | |
1748 | + v9.CheckScriptFailure(lines, 'E179', 2) | |
1740 | 1749 | enddef |
1741 | 1750 | |
1742 | 1751 | def Test_substitute_expr() |
@@ -736,6 +736,8 @@ | ||
736 | 736 | static int included_patches[] = |
737 | 737 | { /* Add new patch number below this line */ |
738 | 738 | /**/ |
739 | + 211, | |
740 | +/**/ | |
739 | 741 | 210, |
740 | 742 | /**/ |
741 | 743 | 209, |
@@ -188,10 +188,17 @@ | ||
188 | 188 | size_t len; |
189 | 189 | char_u *buf; |
190 | 190 | isntype_T isn = ISN_EXEC; |
191 | + char *cmd = eap->cmdidx == CMD_lockvar ? "lockvar" : "unlockvar"; | |
191 | 192 | |
192 | 193 | if (cctx->ctx_skip == SKIP_YES) |
193 | 194 | return OK; |
194 | 195 | |
196 | + if (*p == NUL) | |
197 | + { | |
198 | + semsg(_(e_argument_required_for_str), cmd); | |
199 | + return FAIL; | |
200 | + } | |
201 | + | |
195 | 202 | // Cannot use :lockvar and :unlockvar on local variables. |
196 | 203 | if (p[1] != ':') |
197 | 204 | { |
@@ -223,8 +230,6 @@ | ||
223 | 230 | ret = FAIL; |
224 | 231 | else |
225 | 232 | { |
226 | - char *cmd = eap->cmdidx == CMD_lockvar ? "lockvar" : "unlockvar"; | |
227 | - | |
228 | 233 | if (deep < 0) |
229 | 234 | vim_snprintf((char *)buf, len, "%s! %s", cmd, p); |
230 | 235 | else |