To: vim_dev@googlegroups.com Subject: Patch 8.2.0253 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.0253 Problem: Crash when using :disassamble without argument. (Dhiraj Mishra) Solution: Check for missing argument. (Dominique Pelle, closes #5635, closes #5637) Files: src/vim9execute.c, src/testdir/test_vim9_disassemble.vim, src/ex_cmds.h *** ../vim-8.2.0252/src/vim9execute.c 2020-02-07 22:09:46.218871027 +0100 --- src/vim9execute.c 2020-02-13 21:24:04.119205125 +0100 *************** *** 1590,1595 **** --- 1590,1596 ---- void ex_disassemble(exarg_T *eap) { + char_u *arg = eap->arg; char_u *fname; ufunc_T *ufunc; dfunc_T *dfunc; *************** *** 1598,1605 **** int line_idx = 0; int prev_current = 0; ! fname = trans_function_name(&eap->arg, FALSE, TFN_INT | TFN_QUIET | TFN_NO_AUTOLOAD | TFN_NO_DEREF, NULL, NULL); ufunc = find_func(fname, NULL); vim_free(fname); if (ufunc == NULL) --- 1599,1612 ---- int line_idx = 0; int prev_current = 0; ! 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) *** ../vim-8.2.0252/src/testdir/test_vim9_disassemble.vim 2020-02-07 22:09:46.218871027 +0100 --- src/testdir/test_vim9_disassemble.vim 2020-02-13 21:27:57.118295013 +0100 *************** *** 23,28 **** --- 23,32 ---- def Test_disassemble_load() assert_fails('disass NoFunc', 'E1061:') assert_fails('disass NotCompiled', 'E1062:') + assert_fails('disass', 'E471:') + assert_fails('disass [', 'E475:') + assert_fails('disass 234', 'E475:') + assert_fails('disass foo', 'E475:') let res = execute('disass s:ScriptFuncLoad') assert_match('\d*_ScriptFuncLoad.*' *** ../vim-8.2.0252/src/ex_cmds.h 2020-01-26 15:52:33.019833259 +0100 --- src/ex_cmds.h 2020-02-13 21:17:39.204746855 +0100 *************** *** 479,485 **** EX_BANG|EX_EXTRA|EX_TRLBAR|EX_CMDWIN, ADDR_NONE), EXCMD(CMD_disassemble, "disassemble", ex_disassemble, ! EX_EXTRA|EX_TRLBAR|EX_CMDWIN, ADDR_NONE), EXCMD(CMD_djump, "djump", ex_findpat, EX_BANG|EX_RANGE|EX_DFLALL|EX_WHOLEFOLD|EX_EXTRA, --- 479,485 ---- EX_BANG|EX_EXTRA|EX_TRLBAR|EX_CMDWIN, ADDR_NONE), EXCMD(CMD_disassemble, "disassemble", ex_disassemble, ! EX_EXTRA|EX_NEEDARG|EX_TRLBAR|EX_CMDWIN, ADDR_NONE), EXCMD(CMD_djump, "djump", ex_findpat, EX_BANG|EX_RANGE|EX_DFLALL|EX_WHOLEFOLD|EX_EXTRA, *** ../vim-8.2.0252/src/version.c 2020-02-13 20:31:22.999790437 +0100 --- src/version.c 2020-02-13 21:10:30.718459686 +0100 *************** *** 744,745 **** --- 744,747 ---- { /* Add new patch number below this line */ + /**/ + 253, /**/ -- hundred-and-one symptoms of being an internet addict: 76. Your ISP regards you as a business partner rather than as a customer. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///