From b0c0c17764818074882f4788624297a72414d8d9 Mon Sep 17 00:00:00 2001 From: Mark Michelson Date: Tue, 23 Jun 2009 15:08:27 +0000 Subject: [PATCH] Fix potential memory leak in chan_sip when video rtp is not allocated properly. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@202572 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index a1e6279319..99b3d4f3c3 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);