From: Bram Moolenaar Date: Sun, 10 May 2020 21:20:06 +0000 (+0200) Subject: patch 8.2.0735: Vim9: using unitialized memory X-Git-Tag: v8.2.0735 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bc38f25c021dc4314c77d50a608329a328b0d988;p=vim patch 8.2.0735: Vim9: using unitialized memory Problem: Vim9: using unitialized memory. Solution: Clear the arg_lvar field. --- diff --git a/src/version.c b/src/version.c index 19920dea8..96ca8898a 100644 --- a/src/version.c +++ b/src/version.c @@ -746,6 +746,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 735, /**/ 734, /**/ diff --git a/src/vim9compile.c b/src/vim9compile.c index c8c87e737..99246e07d 100644 --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -4762,18 +4762,20 @@ compile_assignment(char_u *arg, exarg_T *eap, cmdidx_T cmdidx, cctx_T *cctx) } lvar = lookup_local(arg, varlen, cctx); - if (lvar == NULL - && lookup_arg(arg, varlen, + if (lvar == NULL) + { + CLEAR_FIELD(arg_lvar); + if (lookup_arg(arg, varlen, &arg_lvar.lv_idx, &arg_lvar.lv_type, &arg_lvar.lv_from_outer, cctx) == OK) - { - if (is_decl) { - semsg(_(e_used_as_arg), name); - goto theend; + if (is_decl) + { + semsg(_(e_used_as_arg), name); + goto theend; + } + lvar = &arg_lvar; } - arg_lvar.lv_const = 0; - lvar = &arg_lvar; } if (lvar != NULL) {