]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
iax2 frame double free
authorDavid Vossel <dvossel@digium.com>
Fri, 18 Sep 2009 23:19:50 +0000 (23:19 +0000)
committerDavid Vossel <dvossel@digium.com>
Fri, 18 Sep 2009 23:19:50 +0000 (23:19 +0000)
The iax frame's retrans sched id was written over right
before iax2_frame_free was called.  In iax2_frame_free that
retrans id is used to delete the sched item.  By writing over
the retrans field before the sched item could be deleted, it was
possible for a retransmit to occur on a freed frame.

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

channels/chan_iax2.c

index e834c06c9b996627c604b0343bcc7b548f06e009..caf39cb1b52887eb984e9035e7fc24f49c1d140e 100644 (file)
@@ -3064,7 +3064,6 @@ static void __attempt_transmit(const void *data)
                AST_LIST_REMOVE(&iaxq.queue, f, list);
                iaxq.count--;
                AST_LIST_UNLOCK(&iaxq.queue);
-               f->retrans = -1;
                /* Free the IAX frame */
                iax2_frame_free(f);
        }