mirror of
https://github.com/asterisk/asterisk.git
synced 2026-07-27 16:07:15 -07:00
Yet another memory corruption issue.
Reported by: atis Patch by: tilghman Fixes issue #10923 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89298 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -8315,6 +8315,18 @@ static void *iax2_process_thread(void *data)
|
||||
handle_deferred_full_frames(thread);
|
||||
}
|
||||
|
||||
/*!\note For some reason, idle threads are exiting without being removed
|
||||
* from an idle list, which is causing memory corruption. Forcibly remove
|
||||
* it from the list, if it's there.
|
||||
*/
|
||||
AST_LIST_LOCK(&idle_list);
|
||||
AST_LIST_REMOVE(&idle_list, thread, list);
|
||||
AST_LIST_UNLOCK(&idle_list);
|
||||
|
||||
AST_LIST_LOCK(&dynamic_list);
|
||||
AST_LIST_REMOVE(&dynamic_list, thread, list);
|
||||
AST_LIST_UNLOCK(&dynamic_list);
|
||||
|
||||
/* I am exiting here on my own volition, I need to clean up my own data structures
|
||||
* Assume that I am no longer in any of the lists (idle, active, or dynamic)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user