# HG changeset patch # User Christian Brabandt # Date 1456256705 -3600 # Node ID cb0edf7bd0a4177c86d8c168db479411f2ff6b03 # Parent 1d89a5001f9fa5513f9625c1fd97edb312791351 commit https://github.com/vim/vim/commit/e16e5a9d8d6d3159107541a259c6823ade18fd08 Author: Bram Moolenaar Date: Tue Feb 23 20:44:08 2016 +0100 patch 7.4.1406 Problem: Leaking memory in cs_print_tags_priv(). Solution: Free tbuf. (idea by Forrest Fleming) diff --git a/src/if_cscope.c b/src/if_cscope.c --- a/src/if_cscope.c +++ b/src/if_cscope.c @@ -2092,12 +2092,13 @@ cs_print_tags_priv(char **matches, char continue; (void)strcpy(tbuf, matches[idx]); - if (strtok(tbuf, (const char *)"\t") == NULL) + if (strtok(tbuf, (const char *)"\t") == NULL + || (fname = strtok(NULL, (const char *)"\t")) == NULL + || (lno = strtok(NULL, (const char *)"\t")) == NULL) + { + vim_free(tbuf); continue; - if ((fname = strtok(NULL, (const char *)"\t")) == NULL) - continue; - if ((lno = strtok(NULL, (const char *)"\t")) == NULL) - continue; + } extra = strtok(NULL, (const char *)"\t"); lno[strlen(lno)-2] = '\0'; /* ignore ;" at the end */ diff --git a/src/version.c b/src/version.c --- 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 */ /**/ + 1406, +/**/ 1405, /**/ 1404,