help.c::exclude_cmds(): plug a leak
Command name removed from the list of commands via the exclusion were overwritten and lost without being freed. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
7
help.c
7
help.c
@ -64,9 +64,10 @@ void exclude_cmds(struct cmdnames *cmds, struct cmdnames *excludes)
|
|||||||
cmp = strcmp(cmds->names[ci]->name, excludes->names[ei]->name);
|
cmp = strcmp(cmds->names[ci]->name, excludes->names[ei]->name);
|
||||||
if (cmp < 0)
|
if (cmp < 0)
|
||||||
cmds->names[cj++] = cmds->names[ci++];
|
cmds->names[cj++] = cmds->names[ci++];
|
||||||
else if (cmp == 0)
|
else if (cmp == 0) {
|
||||||
ci++, ei++;
|
ei++;
|
||||||
else if (cmp > 0)
|
free(cmds->names[ci++]);
|
||||||
|
} else if (cmp > 0)
|
||||||
ei++;
|
ei++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user