X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Fsilcschedule.c;h=db939c3ad201df748aa4f7fde12362d681245dde;hb=ed3133837d3466b1d9eb15278677d82971bbd35f;hp=828e78748e639167b95b043064312d28656fb5c7;hpb=275e2f50c1cbe4a0eec582cf490ef485049541af;p=silc.git diff --git a/lib/silcutil/silcschedule.c b/lib/silcutil/silcschedule.c index 828e7874..db939c3a 100644 --- a/lib/silcutil/silcschedule.c +++ b/lib/silcutil/silcschedule.c @@ -936,6 +936,7 @@ static void silc_task_queue_alloc(SilcTaskQueue *queue) static void silc_task_queue_free(SilcTaskQueue queue) { silc_mutex_free(queue->lock); + memset(queue, 'F', sizeof(*queue)); silc_free(queue); } @@ -1172,10 +1173,11 @@ static int silc_schedule_task_remove(SilcTaskQueue queue, SilcTask task) next = first; while(1) { - next = next->next; - silc_free(next->prev); - if (next == first) + old = next->next; + silc_free(next); + if (old == first) break; + next = old; } queue->task = NULL;