changeset 8751:7f974075eb8f v7.4.1664

commit https://github.com/vim/vim/commit/89c64d557dbe0bacfdd7b2872411b00cc1523d85 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Mar 27 18:44:40 2016 +0200 patch 7.4.1664 Problem: Crash in :cgetexpr. Solution: Check for NULL pointer. (Dominique) Add a test.
author Christian Brabandt <cb@256bit.org>
date Sun, 27 Mar 2016 18:45:04 +0200
parents 8c639c05f1b0
children 03314a19539f
files src/quickfix.c src/testdir/test_quickfix.vim src/version.c
diffstat 3 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -532,7 +532,8 @@ qf_init_ext(
 		else if (tv->v_type == VAR_LIST)
 		{
 		    /* Get the next line from the supplied list */
-		    while (p_li && p_li->li_tv.v_type != VAR_STRING)
+		    while (p_li && (p_li->li_tv.v_type != VAR_STRING
+				|| p_li->li_tv.vval.v_string == NULL))
 			p_li = p_li->li_next;	/* Skip non-string items */
 
 		    if (!p_li)			/* End of the list */
--- a/src/testdir/test_quickfix.vim
+++ b/src/testdir/test_quickfix.vim
@@ -692,3 +692,8 @@ func Test_caddbuffer_to_empty()
   endtry
   quit!
 endfunc
+
+func Test_cgetexpr_works()
+  " this must not crash Vim
+  cgetexpr [$x]
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -749,6 +749,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1664,
+/**/
     1663,
 /**/
     1662,