From bffcd79a2b620a8b30f80174b677be9e4dbabbb7 Mon Sep 17 00:00:00 2001 From: mmichelson Date: Tue, 23 Jun 2009 15:08:27 +0000 Subject: Fix potential memory leak in chan_sip when video rtp is not allocated properly. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@202572 f38db490-d61c-443f-a65b-d21fe96a405b --- channels/chan_sip.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'channels') diff --git a/channels/chan_sip.c b/channels/chan_sip.c index a1e627931..99b3d4f3c 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -4600,6 +4600,10 @@ static struct sip_pvt *sip_alloc(ast_string_field callid, struct sockaddr_in *si if (!p->rtp || (ast_test_flag(&p->flags[1], SIP_PAGE2_VIDEOSUPPORT) && !p->vrtp)) { ast_log(LOG_WARNING, "Unable to create RTP audio %s session: %s\n", ast_test_flag(&p->flags[1], SIP_PAGE2_VIDEOSUPPORT) ? "and video" : "", strerror(errno)); + /* If rtp was successfully allocated, but vrtp was not, then we need to be sure to free rtp here */ + if (p->rtp) { + ast_rtp_destroy(p->rtp); + } ast_mutex_destroy(&p->lock); if (p->chanvars) { ast_variables_destroy(p->chanvars); -- cgit v1.2.3