Skip to content
Permalink
Browse files
patch 8.0.1617: Win32: :shell command in the GUI crashes
Problem:    Win32: :shell command in the GUI crashes.
Solution:   Handle the situation that "cmd" is NULL. (Yasuhiro Matsumoto,
            closes #2721)
  • Loading branch information
brammool committed Mar 19, 2018
1 parent f05fa37 commit 42f652f733550a0d8bc9b030c9a5a62e7e2d8668
Showing with 16 additions and 4 deletions.
  1. +14 −4 src/os_win32.c
  2. +2 −0 src/version.c
@@ -4800,15 +4800,25 @@ mch_call_shell_terminal(
aco_save_T aco;
oparg_T oa; /* operator arguments */

cmdlen = STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10;

if (cmd == NULL)
cmdlen = STRLEN(p_sh) + 1;
else
cmdlen = STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10;
newcmd = lalloc(cmdlen, TRUE);
if (newcmd == NULL)
return 255;
vim_snprintf((char *)newcmd, cmdlen, "%s %s %s", p_sh, p_shcf, cmd);
if (cmd == NULL)
{
STRCPY(newcmd, p_sh);
ch_log(NULL, "starting terminal to run a shell");
}
else
{
vim_snprintf((char *)newcmd, cmdlen, "%s %s %s", p_sh, p_shcf, cmd);
ch_log(NULL, "starting terminal for system command '%s'", cmd);
}

init_job_options(&opt);
ch_log(NULL, "starting terminal for system command '%s'", cmd);

argvar[0].v_type = VAR_STRING;
argvar[0].vval.v_string = newcmd;
@@ -766,6 +766,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1617,
/**/
1616,
/**/

0 comments on commit 42f652f

Please sign in to comment.