From 11505dcd2b4bf7ab892549f4ce29c0dbc53aac8b Mon Sep 17 00:00:00 2001
From: Bram Moolenaar <Bram@vim.org>
Date: Fri, 16 Jul 2010 21:29:06 +0200
Subject: [PATCH] Fix bad parsing of 'colorcolumn'. (Dominique Pelle)

---
 src/option.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/option.c b/src/option.c
index fd763afbfd..80eb9424c7 100644
--- a/src/option.c
+++ b/src/option.c
@@ -6956,7 +6956,7 @@ check_colorcolumn(wp)
     int		i;
     int		j = 0;
 
-    for (s = wp->w_p_cc; *s != NUL && count < 255; ++s)
+    for (s = wp->w_p_cc; *s != NUL && count < 255;)
     {
 	if (*s == '-' || *s == '+')
 	{
@@ -6967,21 +6967,23 @@ check_colorcolumn(wp)
 		return e_invarg;
 	    col = col * getdigits(&s);
 	    if (wp->w_buffer->b_p_tw == 0)
-		continue;  /* 'textwidth' not set, skip this item */
+		goto skip;  /* 'textwidth' not set, skip this item */
 	    col += wp->w_buffer->b_p_tw;
 	    if (col < 0)
-		continue;
+		goto skip;
 	}
 	else if (VIM_ISDIGIT(*s))
 	    col = getdigits(&s);
 	else
 	    return e_invarg;
 	color_cols[count++] = col - 1;  /* 1-based to 0-based */
-
+skip:
 	if (*s == NUL)
 	    break;
 	if (*s != ',')
 	    return e_invarg;
+	if (*++s == NUL)
+	    return e_invarg;  /* illegal trailing comma as in "set cc=80," */
     }
 
     vim_free(wp->w_p_cc_cols);
-- 
GitLab