summaryrefslogtreecommitdiff
path: root/channels/chan_iax2.c
diff options
context:
space:
mode:
authorRussell Bryant <russell@russellbryant.com>2007-07-30 20:21:05 +0000
committerRussell Bryant <russell@russellbryant.com>2007-07-30 20:21:05 +0000
commita27203a5bcf60d10436e2fa5772a05895b44438f (patch)
tree2dd484d6f68dea65ce24247e4f28cfcfbd0a6e54 /channels/chan_iax2.c
parentfc0ea46f041cb823e808624e3cc360c673431dd6 (diff)
Merged revisions 77794 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r77794 | russell | 2007-07-30 15:16:43 -0500 (Mon, 30 Jul 2007) | 8 lines Fix an issue that could potentially cause corruption of the global iax frame queue. In the network_thread() loop, it traverses the list using the AST_LIST_TRAVERSE_SAFE macro. However, to remove an element of the list within this loop, it used AST_LIST_REMOVE, instead of AST_LIST_REMOVE_CURRENT, which I believe could leave some of the internal variables of the SAFE macro invalid. Mihai says that he already made this change in his local copy and it didn't help his VNAK storm issues, but I still think it's wrong. :) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77797 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_iax2.c')
-rw-r--r--channels/chan_iax2.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 1af356539..b729cab51 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -8850,7 +8850,7 @@ static void *network_thread(void *ignore)
if (f->retries < 0) {
/* This is not supposed to be retransmitted */
- AST_LIST_REMOVE(&frame_queue, f, list);
+ AST_LIST_REMOVE_CURRENT(&frame_queue, list);
/* Free the iax frame */
iax_frame_free(f);
} else {