patch 8.2.0253: crash when using :disassamble without argument
Problem: Crash when using :disassamble without argument. (Dhiraj Mishra)
Solution: Check for missing argument. (Dominique Pelle, closes #5635,
closes #5637)
diff --git a/src/vim9execute.c b/src/vim9execute.c
index ed3a75b..c31506a 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -1590,6 +1590,7 @@
void
ex_disassemble(exarg_T *eap)
{
+ char_u *arg = eap->arg;
char_u *fname;
ufunc_T *ufunc;
dfunc_T *dfunc;
@@ -1598,8 +1599,14 @@
int line_idx = 0;
int prev_current = 0;
- fname = trans_function_name(&eap->arg, FALSE,
+ fname = trans_function_name(&arg, FALSE,
TFN_INT | TFN_QUIET | TFN_NO_AUTOLOAD | TFN_NO_DEREF, NULL, NULL);
+ if (fname == NULL)
+ {
+ semsg(_(e_invarg2), eap->arg);
+ return;
+ }
+
ufunc = find_func(fname, NULL);
vim_free(fname);
if (ufunc == NULL)