diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index e0a482ec82..cc89fc7086 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -1493,7 +1493,6 @@ static void iax2_destroy_helper(struct chan_iax2_pvt *pvt) static void iax2_frame_free(struct iax_frame *fr) { AST_SCHED_DEL(sched, fr->retrans); - fr->retrans = -1; iax_frame_free(fr); } @@ -3165,6 +3164,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); }