patch 7.4.1664
Problem:    Crash in :cgetexpr.
Solution:   Check for NULL pointer. (Dominique) Add a test.
diff --git a/src/quickfix.c b/src/quickfix.c
index c2ff55a..00762bd 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -532,7 +532,8 @@
 		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 */
diff --git a/src/testdir/test_quickfix.vim b/src/testdir/test_quickfix.vim
index 3908ce0..8da1b6f 100644
--- a/src/testdir/test_quickfix.vim
+++ b/src/testdir/test_quickfix.vim
@@ -692,3 +692,8 @@
   endtry
   quit!
 endfunc
+
+func Test_cgetexpr_works()
+  " this must not crash Vim
+  cgetexpr [$x]
+endfunc
diff --git a/src/version.c b/src/version.c
index f21fb6b..e925e41 100644
--- a/src/version.c
+++ b/src/version.c
@@ -749,6 +749,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1664,
+/**/
     1663,
 /**/
     1662,