Problem: Vim9: out-of-bound access when echoing an enum
Solution: Add NUL to growarray, check that ufunc is non-null
before accessing it to make Coverity happy
(Yegappan Lakshmanan)
closes: #16488
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
v9.CheckScriptSuccess(lines)
enddef
+" Echo an enum
+def Test_enum_echo()
+ var lines =<< trim END
+ vim9script
+ enum Demo
+ one('tahi'),
+ two('rua'),
+ three('toru')
+ var alias: string
+ endenum
+ assert_equal('enum Demo.one {name: one, ordinal: 0, alias: tahi}', execute('echo Demo.one')->split("\n")[0])
+ END
+ v9.CheckScriptSuccess(lines)
+enddef
+
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1041,
/**/
1040,
/**/
vim_free(ga.ga_data);
return NULL;
}
+ ga_append(&ga, NUL);
return (char_u *)ga.ga_data;
}
}
}
- if (is_super && IS_ABSTRACT_METHOD(ufunc))
+ if (is_super && ufunc != NULL && IS_ABSTRACT_METHOD(ufunc))
{
// Trying to invoke an abstract method in a super class is not
// allowed.