diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-07-22 17:04:02 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-07-22 17:04:02 +0200 |
commit | 825680f5f4ffed5d57fdb283dde5f0ad734605fc (patch) | |
tree | ddc79f2e8bd2be926d92b90111def111a25df5d1 | |
parent | 8f84c3a8666cea04484ec93fa05386bf33f93f5a (diff) | |
download | vim-git-825680f5f4ffed5d57fdb283dde5f0ad734605fc.tar.gz |
patch 8.0.0743: the 'termsize' option can be set to an invalid valuev8.0.0743
Problem: The 'termsize' option can be set to an invalid value.
Solution: Check the 'termsize' option to be valid.
-rw-r--r-- | src/option.c | 13 | ||||
-rw-r--r-- | src/testdir/gen_opt_test.vim | 1 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 16 insertions, 0 deletions
diff --git a/src/option.c b/src/option.c index 8e91fae74..524789371 100644 --- a/src/option.c +++ b/src/option.c @@ -7479,6 +7479,19 @@ did_set_string_option( } #endif +#ifdef FEAT_TERMINAL + /* 'termsize' */ + else if (varp == &curwin->w_p_tms) + { + if (*curwin->w_p_tms != NUL) + { + p = skipdigits(curwin->w_p_tms); + if (p == curwin->w_p_tms || *p != 'x' || *skipdigits(p + 1) != NUL) + errmsg = e_invarg; + } + } +#endif + /* Options that are a list of flags. */ else { diff --git a/src/testdir/gen_opt_test.vim b/src/testdir/gen_opt_test.vim index 019c757df..128a91814 100644 --- a/src/testdir/gen_opt_test.vim +++ b/src/testdir/gen_opt_test.vim @@ -124,6 +124,7 @@ let test_values = { \ 'switchbuf': [['', 'useopen', 'split,newtab'], ['xxx']], \ 'tagcase': [['smart', 'match'], ['', 'xxx', 'smart,match']], \ 'term': [[], []], + \ 'termsize': [['', '24x80', '0x80', '32x0', '0x0'], ['xxx', '80', '8ax9', '24x80b']], \ 'toolbar': [['', 'icons', 'text'], ['xxx']], \ 'toolbariconsize': [['', 'tiny', 'huge'], ['xxx']], \ 'ttymouse': [['', 'xterm'], ['xxx']], diff --git a/src/version.c b/src/version.c index b678ed92b..da56b9a31 100644 --- a/src/version.c +++ b/src/version.c @@ -770,6 +770,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 743, +/**/ 742, /**/ 741, |