From: Todd C. Miller Date: Fri, 14 Jul 2017 16:09:58 +0000 (-0600) Subject: If we free the default base in sudo_ev_base_free(), reset the default X-Git-Tag: SUDO_1_8_21^2~39 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7f8765d32786526e7e939bbd282f504fe3355e33;p=sudo If we free the default base in sudo_ev_base_free(), reset the default base to NULL. --- diff --git a/lib/util/event.c b/lib/util/event.c index e62756e63..4365a2fbc 100644 --- a/lib/util/event.c +++ b/lib/util/event.c @@ -221,6 +221,10 @@ sudo_ev_base_free_v1(struct sudo_event_base *base) if (base == NULL) debug_return; + /* Reset the default base if necessary. */ + if (default_base == base) + default_base = NULL; + /* Remove any existing events before freeing the base. */ TAILQ_FOREACH_SAFE(ev, &base->events, entries, next) { sudo_ev_del(base, ev); diff --git a/src/exec_nopty.c b/src/exec_nopty.c index 400612d5d..f22555d61 100644 --- a/src/exec_nopty.c +++ b/src/exec_nopty.c @@ -316,7 +316,6 @@ free_exec_closure_nopty(struct exec_closure_nopty *ec) { debug_decl(free_exec_closure_nopty, SUDO_DEBUG_EXEC) - sudo_ev_base_setdef(NULL); sudo_ev_base_free(ec->evbase); sudo_ev_free(ec->errpipe_event); sudo_ev_free(ec->sigint_event); diff --git a/src/exec_pty.c b/src/exec_pty.c index c44241982..979fccfff 100644 --- a/src/exec_pty.c +++ b/src/exec_pty.c @@ -1118,7 +1118,6 @@ free_exec_closure_pty(struct exec_closure_pty *ec) { debug_decl(free_exec_closure_pty, SUDO_DEBUG_EXEC) - sudo_ev_base_setdef(NULL); sudo_ev_base_free(ec->evbase); sudo_ev_free(ec->backchannel_event); sudo_ev_free(ec->sigint_event);