diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index d09e46bafc..442afef4bb 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -1640,7 +1640,6 @@ static void iax2_destroy_helper(struct chan_iax2_pvt *pvt) static void iax2_frame_free(struct iax_frame *fr) { ast_sched_thread_del(sched, fr->retrans); - fr->retrans = -1; iax_frame_free(fr); } @@ -3312,6 +3311,7 @@ static void __attempt_transmit(const void *data) AST_LIST_LOCK(&frame_queue); AST_LIST_REMOVE(&frame_queue, f, list); AST_LIST_UNLOCK(&frame_queue); + f->retrans = -1; /* this is safe because this is the scheduled function */ /* Free the IAX frame */ iax2_frame_free(f); }