# HG changeset patch # User Bram Moolenaar # Date 1648718103 -7200 # Node ID d817abf991df81593e5e836b4f23455aa872f4f6 # Parent f22ba39cf3281c8e0b0a06b825f9e269fb83030e patch 8.2.4652: leaking memory if assignment fails Commit: https://github.com/vim/vim/commit/d1d2684c8006105444d249e846576c23d79ad4ee Author: Bram Moolenaar Date: Thu Mar 31 10:13:47 2022 +0100 patch 8.2.4652: leaking memory if assignment fails Problem: Leaking memory if assignment fails. Solution: Clear assigned value on failure. diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4652, +/**/ 4651, /**/ 4650, diff --git a/src/vim9execute.c b/src/vim9execute.c --- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -3098,6 +3098,7 @@ exec_instructions(ectx_T *ectx) if (iptr->isn_type == ISN_STOREEXPORT) { semsg(_(e_undefined_variable_str), name); + clear_tv(STACK_TV_BOT(0)); goto on_error; } store_var(name, STACK_TV_BOT(0)); @@ -3118,6 +3119,7 @@ exec_instructions(ectx_T *ectx) { semsg(_(e_item_not_exported_in_script_str), name); + clear_tv(STACK_TV_BOT(0)); goto on_error; } }