]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
autoservice: fix reference leak of logger callid.
authorCorey Farrell <git@cfware.com>
Mon, 14 Apr 2014 15:50:30 +0000 (15:50 +0000)
committerCorey Farrell <git@cfware.com>
Mon, 14 Apr 2014 15:50:30 +0000 (15:50 +0000)
autoservice acquires a local reference to the logger callid of each channel
in a loop.  This local reference was not released, causing the callid of
every channel in autoservice to leak.  This change moves the callid unref
inside the loop.

ASTERISK-23616 #close
Reported by: ibercom

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@412305 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/autoservice.c

index 5b0c722efd207311ac3911939aca0ee5096358b0..1590c8537a5927a9686ba842a2fbf6b516979636 100644 (file)
@@ -131,6 +131,9 @@ static void *autoservice_run(void *ign)
 
                callid = ast_channel_callid(chan);
                ast_callid_threadassoc_change(callid);
+               if (callid) {
+                       callid = ast_callid_unref(callid);
+               }
 
                f = ast_read(chan);
 
@@ -174,11 +177,6 @@ static void *autoservice_run(void *ign)
                }
        }
 
-       if (callid) {
-               ast_callid_threadassoc_remove();
-               callid = ast_callid_unref(callid);
-       }
-
        asthread = AST_PTHREADT_NULL;
 
        return NULL;