diff options
author | Jonathan Rose <jrose@digium.com> | 2013-10-24 17:00:27 +0000 |
---|---|---|
committer | Jonathan Rose <jrose@digium.com> | 2013-10-24 17:00:27 +0000 |
commit | 4ca0f222e85554e24d5cfb7d48b3a774d96a6e45 (patch) | |
tree | 411b1a8a88241acde89163243e464edce21486d4 /channels/chan_dahdi.c | |
parent | beb5cdbef54908cc1564539f9cfb8852b530f2bc (diff) |
memory leaks: Memory leak cleanup patch by Corey Farrell (second set)
Also covers ast_app_parse_timelen-fail-zero-length.patch, but the patch was
replaced with one of my own.
(issue ASTERISK-22467)
Reported by: Corey Farrell
Patches:
chan_dahdi-cleanup_push.patch uploaded by coreyfarrell (license 5909)
clicompat-r2.patch uploaded by coreyfarrell (license 5909)
codecs-ilbc-doCPLC.patch uploaded by coreyfarrell (license 5909)
data-cleanup-test-registration.patch uploaded by coreyfarrell (license 5909)
main-asterisk-kill-listener.patch uploaded by coreyfarrell (license 5909)
........
Merged revisions 401704 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........
Merged revisions 401705 from http://svn.asterisk.org/svn/asterisk/branches/11
........
Merged revisions 401706 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@401707 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_dahdi.c')
-rw-r--r-- | channels/chan_dahdi.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index cc82f156f..b68299478 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -11155,6 +11155,11 @@ static struct dahdi_pvt *handle_init_event(struct dahdi_pvt *i, int event) return NULL; } +static void monitor_pfds_clean(void *arg) { + struct pollfd **pfds = arg; + ast_free(*pfds); +} + static void *do_monitor(void *data) { int count, res, res2, spoint, pollres=0; @@ -11178,6 +11183,7 @@ static void *do_monitor(void *data) #endif pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL); + pthread_cleanup_push(monitor_pfds_clean, &pfds); for (;;) { /* Lock the interface list */ ast_mutex_lock(&iflock); @@ -11433,6 +11439,7 @@ static void *do_monitor(void *data) ast_mutex_unlock(&iflock); } /* Never reached */ + pthread_cleanup_pop(1); return NULL; } |