updated for version 7.3.166
Problem:    Buffer on the stack may be too big
Solution:   Allocate the space.
diff --git a/src/option.c b/src/option.c
index 6e9b3db..a545588 100644
--- a/src/option.c
+++ b/src/option.c
@@ -9185,7 +9185,7 @@
     int		expand;
 {
     char_u	*s;
-    char_u	buf[MAXPATHL];
+    char_u	*buf;
 
     if (fprintf(fd, "%s %s=", cmd, name) < 0)
 	return FAIL;
@@ -9203,9 +9203,16 @@
 	}
 	else if (expand)
 	{
+	    buf = alloc(MAXPATHL);
+	    if (buf == NULL)
+		return FAIL;
 	    home_replace(NULL, *valuep, buf, MAXPATHL, FALSE);
 	    if (put_escstr(fd, buf, 2) == FAIL)
+	    {
+		vim_free(buf);
 		return FAIL;
+	    }
+	    vim_free(buf);
 	}
 	else if (put_escstr(fd, *valuep, 2) == FAIL)
 	    return FAIL;