]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
delete only if they're in the heaps
authorAlan T. DeKok <aland@freeradius.org>
Tue, 24 Oct 2017 20:01:20 +0000 (16:01 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 24 Oct 2017 20:01:20 +0000 (16:01 -0400)
src/lib/io/worker.c

index 8ac423b67a9260b0332261b7c568fda7a3e8e260..4ca3d50bf75f7a62947a2a1f42507e03d16bc51e 100644 (file)
@@ -543,8 +543,8 @@ static void fr_worker_send_reply(fr_worker_t *worker, REQUEST *request, size_t s
         *      @todo Use a talloc pool for the request.  Clean it up,
         *      and insert it back into a slab allocator.
         */
-       (void) fr_heap_extract(worker->time_order, request);
-       (void) rbtree_deletebydata(worker->dedup, request);
+       if (request->time_order_id >= 0) (void) fr_heap_extract(worker->time_order, request);
+       if (request->runnable_id >= 0) (void) fr_heap_extract(worker->runnable, request);
 
 #ifndef NDEBUG
        request->async->original_recv_time = NULL;