From: Todd C. Miller Date: Sat, 26 Oct 2013 12:55:15 +0000 (-0600) Subject: Remove any existing events before freeing the event base. X-Git-Tag: SUDO_1_8_9^2~137 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f68ca0168b6d7064e5ab187184f591478ea0b75b;p=sudo Remove any existing events before freeing the event base. --- diff --git a/common/event.c b/common/event.c index 4c6ad02c1..e32cc2974 100644 --- a/common/event.c +++ b/common/event.c @@ -69,9 +69,16 @@ sudo_ev_base_alloc(void) void sudo_ev_base_free(struct sudo_event_base *base) { + struct sudo_event *next; debug_decl(sudo_ev_base_free, SUDO_DEBUG_EVENT) + + /* Remove any existing events before freeing the base. */ + TAILQ_FOREACH_SAFE(base->cur, &base->events, entries, next) { + sudo_ev_del(base, base->cur); + } sudo_ev_base_free_impl(base); efree(base); + debug_return; }