patch 8.1.1296: crash when using invalid command line argument
Problem: Crash when using invalid command line argument.
Solution: Check for options not being initialized.
diff --git a/src/term.c b/src/term.c
index bcc3dd3..462fe6f 100644
--- a/src/term.c
+++ b/src/term.c
@@ -3014,13 +3014,13 @@
void
term_push_title(int which)
{
- if ((which & SAVE_RESTORE_TITLE) && *T_CST != NUL)
+ if ((which & SAVE_RESTORE_TITLE) && T_CST != NULL && *T_CST != NUL)
{
OUT_STR(T_CST);
out_flush();
}
- if ((which & SAVE_RESTORE_ICON) && *T_SSI != NUL)
+ if ((which & SAVE_RESTORE_ICON) && T_SSI != NULL && *T_SSI != NUL)
{
OUT_STR(T_SSI);
out_flush();
@@ -3033,13 +3033,13 @@
void
term_pop_title(int which)
{
- if ((which & SAVE_RESTORE_TITLE) && *T_CRT != NUL)
+ if ((which & SAVE_RESTORE_TITLE) && T_CRT != NULL && *T_CRT != NUL)
{
OUT_STR(T_CRT);
out_flush();
}
- if ((which & SAVE_RESTORE_ICON) && *T_SRI != NUL)
+ if ((which & SAVE_RESTORE_ICON) && T_SRI != NULL && *T_SRI != NUL)
{
OUT_STR(T_SRI);
out_flush();
diff --git a/src/testdir/test_startup.vim b/src/testdir/test_startup.vim
index dec485b..a45130f 100644
--- a/src/testdir/test_startup.vim
+++ b/src/testdir/test_startup.vim
@@ -408,12 +408,11 @@
endfor
if has('clientserver')
- " FIXME: need to add --servername to this list
- " but it causes vim-8.1.1282 to crash!
for opt in ['--remote', '--remote-send', '--remote-silent', '--remote-expr',
\ '--remote-tab', '--remote-tab-wait',
\ '--remote-tab-wait-silent', '--remote-tab-silent',
\ '--remote-wait', '--remote-wait-silent',
+ \ '--servername',
\ ]
let out = split(system(GetVimCommand() .. ' ' .. opt), "\n")
call assert_equal(1, v:shell_error)
@@ -423,14 +422,13 @@
endfor
endif
- " FIXME: commented out as this causes vim-8.1.1282 to crash!
- "if has('clipboard')
- " let out = split(system(GetVimCommand() .. ' --display'), "\n")
- " call assert_equal(1, v:shell_error)
- " call assert_match('^VIM - Vi IMproved .* (.*)$', out[0])
- " call assert_equal('Argument missing after: "--display"', out[1])
- " call assert_equal('More info with: "vim -h"', out[2])
- "endif
+ if has('clipboard')
+ let out = split(system(GetVimCommand() .. ' --display'), "\n")
+ call assert_equal(1, v:shell_error)
+ call assert_match('^VIM - Vi IMproved .* (.*)$', out[0])
+ call assert_equal('Argument missing after: "--display"', out[1])
+ call assert_equal('More info with: "vim -h"', out[2])
+ endif
let out = split(system(GetVimCommand() .. ' -ix'), "\n")
call assert_equal(1, v:shell_error)
@@ -463,16 +461,15 @@
call assert_equal('More info with: "vim -h"', out[2])
endfor
- " FIXME: commented out as this causes vim-8.1.1282 to crash!
- "if has('gui_gtk')
- " for opt in ['--socketid x', '--socketid 0xg']
- " let out = split(system(GetVimCommand() .. ' ' .. opt), "\n")
- " call assert_equal(1, v:shell_error)
- " call assert_match('^VIM - Vi IMproved .* (.*)$', out[0])
- " call assert_equal('Invalid argument for: "--socketid"', out[1])
- " call assert_equal('More info with: "vim -h"', out[2])
- " endfor
- "endif
+ if has('gui_gtk')
+ for opt in ['--socketid x', '--socketid 0xg']
+ let out = split(system(GetVimCommand() .. ' ' .. opt), "\n")
+ call assert_equal(1, v:shell_error)
+ call assert_match('^VIM - Vi IMproved .* (.*)$', out[0])
+ call assert_equal('Invalid argument for: "--socketid"', out[1])
+ call assert_equal('More info with: "vim -h"', out[2])
+ endfor
+ endif
endfunc
func Test_file_args()
diff --git a/src/version.c b/src/version.c
index 32066b4..8e6b404 100644
--- a/src/version.c
+++ b/src/version.c
@@ -768,6 +768,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1296,
+/**/
1295,
/**/
1294,