diff options
-rwxr-xr-x | asterisk.c | 5 | ||||
-rwxr-xr-x | cli.c | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/asterisk.c b/asterisk.c index 8e64773f6..29c1645eb 100755 --- a/asterisk.c +++ b/asterisk.c @@ -949,6 +949,7 @@ static char *cli_complete(EditLine *el, int ch) if (matches) { int i; + int x; int matches_num, maxlen, match_len; if (matches[0][0] != '\0') { @@ -978,6 +979,10 @@ static char *cli_complete(EditLine *el, int ch) retval = CC_REFRESH; } } + for (x=0; matches[x]; x++) { + free(matches[x]); + matches[x] = NULL; + } free(matches); } @@ -864,12 +864,14 @@ int ast_cli_generatornummatches(char *text, char *word) while ( (buf = ast_cli_generator(text, word, i)) ) { if (++i > 1 && strcmp(buf,oldbuf) == 0) { + free(buf); continue; } oldbuf = buf; matches++; } - + free(oldbuf); + free(buf); return matches; } |