From ce3bc12e25f19d29c74e53a8a7f92079b1ccfcbf Mon Sep 17 00:00:00 2001 From: KunMing Xie Date: Thu, 22 Mar 2018 14:34:42 +0800 Subject: vim-patch:8.0.0357: crash when setting 'guicursor' to weird value (#8161) Problem: Crash when setting 'guicursor' to weird value. Solution: Avoid negative size. (Dominique Pelle, closes vim/vim#1465) https://github.com/vim/vim/commit/24922ec23360e7ea7c5a803c9edf476bb6395b32 --- src/nvim/cursor_shape.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/nvim/cursor_shape.c') diff --git a/src/nvim/cursor_shape.c b/src/nvim/cursor_shape.c index 97fc3a3ca3..b45e7002f7 100644 --- a/src/nvim/cursor_shape.c +++ b/src/nvim/cursor_shape.c @@ -102,11 +102,14 @@ char_u *parse_shape_opt(int what) } while (*modep != NUL) { colonp = vim_strchr(modep, ':'); - if (colonp == NULL) + commap = vim_strchr(modep, ','); + + if (colonp == NULL || (commap != NULL && commap < colonp)) { return (char_u *)N_("E545: Missing colon"); - if (colonp == modep) + } + if (colonp == modep) { return (char_u *)N_("E546: Illegal mode"); - commap = vim_strchr(modep, ','); + } // Repeat for all modes before the colon. // For the 'a' mode, we loop to handle all the modes. -- cgit