From 56a8ffdb6e903615ed824a503f5fa6382b5b3df5 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 1 Dec 2021 10:10:22 +0000 Subject: patch 8.2.3711: Vim9: memory leak when compiling :elseif fails Problem: Vim9: memory leak when compiling :elseif fails. Solution: Cleanup ppconst. --- src/vim9compile.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/vim9compile.c') diff --git a/src/vim9compile.c b/src/vim9compile.c index 3f72c7f39..2ed1f0e58 100644 --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -7888,6 +7888,7 @@ compile_elseif(char_u *arg, cctx_T *cctx) cctx->ctx_skip = save_skip; if (!ends_excmd2(arg, skipwhite(p))) { + clear_ppconst(&ppconst); semsg(_(e_trailing_arg), p); return NULL; } @@ -7901,7 +7902,10 @@ compile_elseif(char_u *arg, cctx_T *cctx) // The expression result is a constant. v = tv_get_bool_chk(&ppconst.pp_tv[0], &error); if (error) + { + clear_ppconst(&ppconst); return NULL; + } cctx->ctx_skip = v ? SKIP_NOT : SKIP_YES; clear_ppconst(&ppconst); scope->se_u.se_if.is_if_label = -1; -- cgit v1.2.1