]> granicus.if.org Git - sudo/commitdiff
If we free the default base in sudo_ev_base_free(), reset the default
authorTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 14 Jul 2017 16:09:58 +0000 (10:09 -0600)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 14 Jul 2017 16:09:58 +0000 (10:09 -0600)
base to NULL.

lib/util/event.c
src/exec_nopty.c
src/exec_pty.c

index e62756e6317f5b6cdc299009896c738e268cf9aa..4365a2fbc0eb7ff55e681ea144897ad731e7dc59 100644 (file)
@@ -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);
index 400612d5d90e952a273dcdf5a84abfaa5e18eaf9..f22555d617188c2ded8f7e436281d8128f822db4 100644 (file)
@@ -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);
index c442419822d9f9e60e645c7a7ab566cf5bc0bf54..979fccfff905eeb32075e57ba94d60e432223bcf 100644 (file)
@@ -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);