(closes issue #13409)

Reported by: tomaso
Patches:
      asterisk-1.6.0-rc2-cdrmemleak.patch uploaded by tomaso (license 564)

I basically spent the day, verifying that this patch 
solves the problem, and doesn't hurt in non-problem 
cases. Why valgrind did not plainly reveal this leak
absolutely mystifies and stuns me. 

Many, many thanks to tomaso for finding and providing the fix.




git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@140670 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Steve Murphy
2008-09-02 22:15:57 +00:00
parent 161b31df57
commit f255b55947
2 changed files with 7 additions and 0 deletions

View File

@@ -1278,6 +1278,11 @@ void ast_channel_free(struct ast_channel *chan)
/* Destroy the jitterbuffer */
ast_jb_destroy(chan);
if (chan->cdr) {
ast_cdr_free(chan->cdr);
chan->cdr = NULL;
}
ast_mutex_destroy(&chan->lock);
ast_string_field_free_memory(chan);
@@ -1523,6 +1528,7 @@ int ast_hangup(struct ast_channel *chan)
ast_cdr_end(chan->cdr);
ast_cdr_detach(chan->cdr);
chan->cdr = NULL;
}
ast_channel_free(chan);

View File

@@ -4972,6 +4972,7 @@ static int ast_pbx_outgoing_cdr_failed(void)
ast_cdr_end(chan->cdr);
ast_cdr_failed(chan->cdr); /* set the status to failed */
ast_cdr_detach(chan->cdr); /* post and free the record */
chan->cdr = NULL;
ast_channel_free(chan); /* free the channel */
return 0; /* success */