From: Junio C Hamano Date: Sat, 28 Jul 2012 04:16:45 +0000 (-0700) Subject: Merge branch 'jk/help-plug-memleak' X-Git-Tag: v1.7.12-rc1~12 X-Git-Url: https://www.git.lorimer.id.au/gitweb.git/diff_plain/3b0553c3fcb07925ae8f6d6f6f0917737b606cdf?hp=a64fe6c1d5949492857e1a5ad14d60175dd484fa Merge branch 'jk/help-plug-memleak' Plug a few trivial memory leaks. * jk/help-plug-memleak: help.c::exclude_cmds(): plug a leak help.c::uniq: plug a leak --- diff --git a/help.c b/help.c index 662349dd56..2a42ec6d1f 100644 --- a/help.c +++ b/help.c @@ -44,9 +44,12 @@ static void uniq(struct cmdnames *cmds) if (!cmds->cnt) return; - for (i = j = 1; i < cmds->cnt; i++) - if (strcmp(cmds->names[i]->name, cmds->names[i-1]->name)) + for (i = j = 1; i < cmds->cnt; i++) { + if (!strcmp(cmds->names[i]->name, cmds->names[j-1]->name)) + free(cmds->names[i]); + else cmds->names[j++] = cmds->names[i]; + } cmds->cnt = j; } @@ -61,9 +64,10 @@ void exclude_cmds(struct cmdnames *cmds, struct cmdnames *excludes) cmp = strcmp(cmds->names[ci]->name, excludes->names[ei]->name); if (cmp < 0) cmds->names[cj++] = cmds->names[ci++]; - else if (cmp == 0) - ci++, ei++; - else if (cmp > 0) + else if (cmp == 0) { + ei++; + free(cmds->names[ci++]); + } else if (cmp > 0) ei++; }