From: Arran Cudbard-Bell Date: Fri, 15 May 2020 17:41:34 +0000 (-0500) Subject: event: Don't allow the same event to be inserted multiple times X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f5a12e10b681795edfa78e93ed5ecbd61622d600;p=thirdparty%2Ffreeradius-server.git event: Don't allow the same event to be inserted multiple times --- diff --git a/src/lib/util/event.c b/src/lib/util/event.c index 1ee319da7d7..e2d95a23248 100644 --- a/src/lib/util/event.c +++ b/src/lib/util/event.c @@ -1282,7 +1282,12 @@ int _fr_event_timer_at(NDEBUG_LOCATION_ARGS #endif if (el->in_handler) { - fr_dlist_insert_head(&el->ev_to_add, ev); + /* + * Don't allow an event to be inserted + * into the deferred insertion list + * multiple times. + */ + if (!fr_dlist_entry_in_list(&ev->entry)) fr_dlist_insert_head(&el->ev_to_add, ev); } else if (unlikely(fr_heap_insert(el->times, ev) < 0)) { fr_strerror_printf_push("Failed inserting event"); talloc_free(ev);