# HG changeset patch # User Bram Moolenaar # Date 1304004298 -7200 # Node ID 5ddb68c2a845ad7941d1ae7533a81c12b106dffc # Parent bf19f6620521eb912eb21490b350e0e109a18117 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 --- a/src/option.c +++ b/src/option.c @@ -9185,7 +9185,7 @@ put_setstring(fd, cmd, name, valuep, exp 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 @@ put_setstring(fd, cmd, name, valuep, exp } 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; diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -715,6 +715,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 166, +/**/ 165, /**/ 164,