patch 8.2.2463: using :arglocal in an autocommand may use freed memory
Problem: Using :arglocal in an autocommand may use freed memory.
(houyunsong)
Solution: Check if the arglist is locked.
diff --git a/src/arglist.c b/src/arglist.c
index 503cbd9..79628fd 100644
--- a/src/arglist.c
+++ b/src/arglist.c
@@ -557,6 +557,8 @@
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 @@
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);