]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
don't insert into the heap multiple times
authorAlan T. DeKok <aland@freeradius.org>
Fri, 20 Oct 2017 17:13:37 +0000 (13:13 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 20 Oct 2017 17:13:37 +0000 (13:13 -0400)
src/main/unlang_interpret.c

index 9114e7af80f7fe06c33650a1cf8f56110a26b840..7b16bd29690b4ec7f33fd3a36c22c5255ce3b1ed 100644 (file)
@@ -2843,7 +2843,12 @@ void unlang_resumable(REQUEST *request)
 #endif
 
        rad_assert(request->backlog != NULL);
-       fr_heap_insert(request->backlog, request);
+
+       /*
+        *      Multiple child request may mark a request runnable,
+        *      before it is enabled for running.
+        */
+       if (request->runnable_id < 0) fr_heap_insert(request->backlog, request);
 }
 
 /** Send a signal (usually stop) to a request