Fix some leaks in CLI (thanks James)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@777 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Mark Spencer
2003-04-08 13:45:36 +00:00
parent 09e1c34d99
commit 4952835d93
2 changed files with 15 additions and 7 deletions

12
cli.c
View File

@@ -278,7 +278,10 @@ static int handle_commandmatchesarray(int fd, int argc, char *argv[])
printf("command matchesarray for '%s' %s got '%s'\n", argv[2], argv[3], matches[x]);
#endif
len += sprintf( buf + len, "%s ", matches[x]);
free(matches[x]);
matches[x] = NULL;
}
free(matches);
}
#if 0
printf("array for '%s' %s got '%s'\n", argv[2], argv[3], buf);
@@ -765,12 +768,16 @@ normal:
int ast_cli_generatornummatches(char *text, char *word)
{
int matches = 0, i = 0;
char *buf, *oldbuf;
char *buf, *oldbuf = NULL;
while ( (buf = ast_cli_generator(text, word, i)) ) {
if (++i > 1 && strcmp(buf,oldbuf) == 0)
if (++i > 1 && strcmp(buf,oldbuf) == 0) {
free(buf);
continue;
}
if (oldbuf)
free(oldbuf);
oldbuf = buf;
matches++;
}
@@ -866,6 +873,7 @@ static char *__ast_cli_generator(char *text, char *word, int state, int lock)
if (res) {
if (lock)
ast_pthread_mutex_unlock(&clilock);
free(dup);
return res ? strdup(res) : NULL;
}
}