diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 3b8d793..c4f9710 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -18999,16 +18999,18 @@ static char *_sip_show_peers(int fd, int *total, struct mansession *s, const str peer = peerarray[k]; - tmp_port = ast_sockaddr_isnull(&peer->addr) ? - "0" : ast_strdupa(ast_sockaddr_stringify_port(&peer->addr)); + tmp_port = ast_strdup(ast_sockaddr_isnull(&peer->addr) ? + "0" : ast_sockaddr_stringify_port(&peer->addr)); - tmp_host = ast_sockaddr_isnull(&peer->addr) ? - "(Unspecified)" : ast_strdupa(ast_sockaddr_stringify_addr(&peer->addr)); + tmp_host = ast_strdup(ast_sockaddr_isnull(&peer->addr) ? + "(Unspecified)" : ast_sockaddr_stringify_addr(&peer->addr)); ao2_lock(peer); if (havepattern && regexec(®exbuf, peer->name, 0, NULL, 0)) { ao2_unlock(peer); peer = peerarray[k] = sip_unref_peer(peer, "toss iterator peer ptr before continue"); + ast_free(tmp_port); + ast_free(tmp_host); continue; } @@ -19081,6 +19083,8 @@ static char *_sip_show_peers(int fd, int *total, struct mansession *s, const str } ao2_unlock(peer); peer = peerarray[k] = sip_unref_peer(peer, "toss iterator peer ptr"); + ast_free(tmp_port); + ast_free(tmp_host); } if (!s) {