Blob Blame History Raw
diff -up sudo-1.7.1/audit_help.c.auditfix sudo-1.7.1/audit_help.c
--- sudo-1.7.1/audit_help.c.auditfix	2009-07-09 15:05:14.000000000 +0200
+++ sudo-1.7.1/audit_help.c	2009-07-09 15:04:33.000000000 +0200
@@ -45,7 +45,7 @@
 #include <selinux/selinux.h>
 #endif
 
-int audit_fd;
+int audit_fd = -1;
 
 void audit_help_open (void)
 {
diff -up sudo-1.7.1/sudo.c.auditfix sudo-1.7.1/sudo.c
--- sudo-1.7.1/sudo.c.auditfix	2009-07-09 14:35:50.000000000 +0200
+++ sudo-1.7.1/sudo.c	2009-07-09 15:02:41.000000000 +0200
@@ -363,10 +363,6 @@ main(argc, argv, envp)
     }
     if (safe_cmnd == NULL)
 	safe_cmnd = estrdup(user_cmnd);
-
-#if defined(WITH_AUDIT)
-    audit_help_open ();
-#endif
     
 #ifdef HAVE_SETLOCALE
     setlocale(LC_ALL, "");
@@ -529,7 +525,12 @@ main(argc, argv, envp)
 	(void) sigaction(SIGINT, &saved_sa_int, NULL);
 	(void) sigaction(SIGQUIT, &saved_sa_quit, NULL);
 	(void) sigaction(SIGTSTP, &saved_sa_tstp, NULL);
+
+	closefrom(def_closefrom + 1);
 	
+#if defined(WITH_AUDIT)
+        audit_help_open ();
+#endif
         if (access(safe_cmnd, X_OK) != 0) {
 		warn ("unable to execute %s", safe_cmnd);
 #ifdef WITH_AUDIT
@@ -545,8 +546,6 @@ main(argc, argv, envp)
 	sudo_endpwent();
 	sudo_endgrent();
 
-	closefrom(def_closefrom + 1);
-
 #ifndef PROFILING
 	if (ISSET(sudo_mode, MODE_BACKGROUND) && fork() > 0) {
 	    syslog(LOG_AUTH|LOG_ERR, "fork");