]> granicus.if.org Git - sudo/commitdiff
Defer conversation initialization until right before plugins
authorTodd C. Miller <Todd.Miller@courtesan.com>
Wed, 22 Apr 2015 19:30:58 +0000 (13:30 -0600)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Wed, 22 Apr 2015 19:30:58 +0000 (13:30 -0600)
are initialized.

src/sudo.c

index ba92d36a869d09d063518d872755b2a7b5df6d05..1b4dc3744c2f41e166f14a0af1e01eb0d27a86e7 100644 (file)
@@ -174,9 +174,6 @@ main(int argc, char *argv[], char *envp[])
 # endif
 #endif /* HAVE_GETPRPWNAM && HAVE_SET_AUTH_PARAMETERS */
 
-    /* Use conversation function for sudo_(warn|fatal)x?. */
-    sudo_warn_set_conversation(sudo_conversation);
-
     /* Initialize the debug subsystem. */
     sudo_conf_read(NULL, SUDO_CONF_DEBUG);
     sudo_debug_instance = sudo_debug_register(getprogname(),
@@ -185,7 +182,7 @@ main(int argc, char *argv[], char *envp[])
     /* Make sure we are setuid root. */
     sudo_check_suid(argc > 0 ? argv[0] : "sudo");
 
-    /* Reset signal mask, save signal state and make sure fds 0-2 are open. */
+    /* Reset signal mask and save signal state. */
     (void) sigemptyset(&mask);
     (void) sigprocmask(SIG_SETMASK, &mask, NULL);
     save_signals();
@@ -211,6 +208,9 @@ main(int argc, char *argv[], char *envp[])
            (void) printf(_("Configure options: %s\n"), CONFIGURE_ARGS);
     }
 
+    /* Use conversation function for sudo_(warn|fatal)x? for plugins. */
+    sudo_warn_set_conversation(sudo_conversation);
+
     /* Load plugins. */
     if (!sudo_load_plugins(&policy_plugin, &io_plugins))
        sudo_fatalx(U_("fatal error, unable to load plugins"));