diff --git a/apps/app_chanspy.c b/apps/app_chanspy.c index ab056e0aa0d6775ed8ac34a80b1669fb95aff848..f37de3889c459fd9cdd45888ac5d48ddf8b9d9ba 100644 --- a/apps/app_chanspy.c +++ b/apps/app_chanspy.c @@ -714,8 +714,10 @@ static int common_exec(struct ast_channel *chan, const struct ast_flags *flags, res = ast_streamfile(chan, peer_name, chan->language); if (!res) res = ast_waitstream(chan, ""); - if (res) + if (res) { + chanspy_ds_free(peer_chanspy_ds); break; + } } else res = ast_say_character_str(chan, peer_name, "", chan->language); if ((num = atoi(ptr))) @@ -731,6 +733,7 @@ static int common_exec(struct ast_channel *chan, const struct ast_flags *flags, goto exit; } else if (res == -2) { res = 0; + chanspy_ds_free(peer_chanspy_ds); goto exit; } else if (res > 1 && spec) { struct ast_channel *next;