]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
more assertions and cleanups
authorAlan T. DeKok <aland@freeradius.org>
Tue, 30 Jan 2018 19:50:45 +0000 (14:50 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 30 Jan 2018 19:50:45 +0000 (14:50 -0500)
src/lib/io/worker.c

index 6654af3c1a9df471ac07e27037d74bcfcc964500..932d95730fa64412eef38f8f402b1c583b4c1c38 100644 (file)
@@ -461,9 +461,7 @@ static void fr_worker_send_reply(fr_worker_t *worker, REQUEST *request, size_t s
         */
        if (request->async->detached) {
                fr_time_tracking_end(&request->async->tracking, fr_time(), &worker->tracking);
-               RDEBUG("finished request.");
-               talloc_free(request);
-               return;
+               goto finished;
        }
 
        /*
@@ -550,6 +548,10 @@ static void fr_worker_send_reply(fr_worker_t *worker, REQUEST *request, size_t s
        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);
 
+finished:
+       rad_assert(request->time_order_id < 0);
+       rad_assert(request->runnable_id < 0);
+
 #ifndef NDEBUG
        request->async->original_recv_time = NULL;
        request->async->el = NULL;