diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-02-03 21:23:29 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-02-03 21:23:29 +0100 |
commit | 6bcb877ec19a647443195a54eeac60cb693fd827 (patch) | |
tree | 03771c400bda7fb02e8466d0a3f3a281d61a35a0 /src/arglist.c | |
parent | 2c363a2e95ee0b366e72063d093d20e025ef4a66 (diff) |
patch 8.2.2463: using :arglocal in an autocommand may use freed memoryv8.2.2463
Problem: Using :arglocal in an autocommand may use freed memory.
(houyunsong)
Solution: Check if the arglist is locked.
Diffstat (limited to 'src/arglist.c')
-rw-r--r-- | src/arglist.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/arglist.c b/src/arglist.c index 503cbd90df..79628fda62 100644 --- a/src/arglist.c +++ b/src/arglist.c @@ -557,6 +557,8 @@ ex_args(exarg_T *eap) if (eap->cmdidx != CMD_args) { + if (check_arglist_locked() == FAIL) + return; alist_unlink(ALIST(curwin)); if (eap->cmdidx == CMD_argglobal) ALIST(curwin) = &global_alist; @@ -566,6 +568,8 @@ ex_args(exarg_T *eap) if (*eap->arg != NUL) { + if (check_arglist_locked() == FAIL) + return; // ":args file ..": define new argument list, handle like ":next" // Also for ":argslocal file .." and ":argsglobal file ..". ex_next(eap); |