]> granicus.if.org Git - sudo/commitdiff
Add sudoers_debug_deregister() and use it instead of calling
authorTodd C. Miller <Todd.Miller@courtesan.com>
Mon, 27 Oct 2014 22:06:20 +0000 (16:06 -0600)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Mon, 27 Oct 2014 22:06:20 +0000 (16:06 -0600)
sudo_debug_deregister() directly.

plugins/sudoers/iolog.c
plugins/sudoers/policy.c
plugins/sudoers/sudoers.h
plugins/sudoers/sudoers_debug.c
plugins/sudoers/testsudoers.c
plugins/sudoers/visudo.c

index bd6281e40af0f5049a7c04bb1f16ebbeb7da35e7..e29baa21b82f29bbec2c232dd201f786399c0ddd 100644 (file)
@@ -602,7 +602,7 @@ sudoers_io_open(unsigned int version, sudo_conv_t conversation,
            continue;
        }
     }
-    sudoers_debug_register(&debug_files, plugin_path);
+    sudoers_debug_register(plugin_path, &debug_files);
 
     /*
      * Pull iolog settings out of command_info.
@@ -690,11 +690,7 @@ sudoers_io_close(int exit_status, int error)
            fclose(io_log_files[i].fd.f);
     }
 
-    sudo_debug_exit(__func__, __FILE__, __LINE__, sudo_debug_subsys);
-    if (sudoers_debug_instance != SUDO_DEBUG_INSTANCE_INITIALIZER) {
-       sudo_debug_deregister(sudoers_debug_instance);
-       sudoers_debug_instance = SUDO_DEBUG_INSTANCE_INITIALIZER;
-    }
+    sudoers_debug_deregister();
 
     return;
 }
index 2a31d706816ceb2c05cba7498605a031c41111ab..a1a9f8ed7d5e7f9df4b3c1acd0d35fe37e8524ac 100644 (file)
@@ -549,7 +549,7 @@ sudoers_policy_open(unsigned int version, sudo_conv_t conversation,
            continue;
        }
     }
-    sudoers_debug_register(&debug_files, plugin_path);
+    sudoers_debug_register(plugin_path, &debug_files);
 
     /* Call the sudoers init function. */
     info.settings = settings;
@@ -593,11 +593,7 @@ sudoers_policy_close(int exit_status, int error_code)
     sudo_efree(user_gids);
     user_gids = NULL;
 
-    sudo_debug_exit(__func__, __FILE__, __LINE__, sudo_debug_subsys);
-    if (sudoers_debug_instance != SUDO_DEBUG_INSTANCE_INITIALIZER) {
-       sudo_debug_deregister(sudoers_debug_instance);
-       sudoers_debug_instance = SUDO_DEBUG_INSTANCE_INITIALIZER;
-    }
+    sudoers_debug_deregister();
 
     return;
 }
index f815b6ff74cd430792296d020b2999d288514f2a..a957c90ff627b6e27218e24249731b5a3c82a85c 100644 (file)
@@ -348,7 +348,8 @@ void sudoers_cleanup(void);
 
 /* sudoers_debug.c */
 void sudoers_debug_parse_flags(struct sudo_conf_debug_file_list *debug_files, const char *entry);
-void sudoers_debug_register(struct sudo_conf_debug_file_list *debug_files, const char *plugin_path);
+void sudoers_debug_register(const char *plugin_path, struct sudo_conf_debug_file_list *debug_files);
+void sudoers_debug_deregister(void);
 extern int sudoers_debug_instance;
 
 /* policy.c */
index 6734a58753a33c5080d1524eb24a0312f3e45b95..549f670f3224dea8d7b3e992a0cace42e86eeac8 100644 (file)
@@ -110,8 +110,8 @@ sudoers_debug_parse_flags(struct sudo_conf_debug_file_list *debug_files,
  * debug subsystem, freeing the debug list when done.
  */
 void
-sudoers_debug_register(struct sudo_conf_debug_file_list *debug_files,
-    const char *program)
+sudoers_debug_register(const char *program,
+    struct sudo_conf_debug_file_list *debug_files)
 {
     struct sudo_debug_file *debug_file, *debug_next;
 
@@ -129,3 +129,17 @@ sudoers_debug_register(struct sudo_conf_debug_file_list *debug_files,
        }
     }
 }
+
+/*
+ * Deregister sudoers_debug_instance if it is registered.
+ */
+void
+sudoers_debug_deregister(void)
+{
+    debug_decl(sudoers_debug_deregister, SUDOERS_DEBUG_PLUGIN, sudoers_debug_instance)
+    if (sudoers_debug_instance != SUDO_DEBUG_INSTANCE_INITIALIZER) {
+       sudo_debug_exit(__func__, __FILE__, __LINE__, sudo_debug_subsys);
+        sudo_debug_deregister(sudoers_debug_instance);
+       sudoers_debug_instance = SUDO_DEBUG_INSTANCE_INITIALIZER;
+    }
+}
index 10ab05afac1f91255d848240c61703ad802b9663..e13a30836498e0749cd2584aa7a0c6054c0ccf35 100644 (file)
@@ -140,7 +140,7 @@ main(int argc, char *argv[])
 
     /* Initialize the debug subsystem. */
     sudo_conf_read(NULL, SUDO_CONF_DEBUG);
-    sudoers_debug_register(sudo_conf_debug_files(getprogname()), getprogname());
+    sudoers_debug_register(getprogname(), sudo_conf_debug_files(getprogname()));
 
     dflag = 0;
     grfile = pwfile = NULL;
index 7e44be6106574ce514f3684e436c0ac3c3c5ecb1..e6e5014f68ccf3d54d7baa4b7a9e1217aa60de0d 100644 (file)
@@ -171,7 +171,7 @@ main(int argc, char *argv[])
 
     /* Initialize the debug subsystem. */
     sudo_conf_read(NULL, SUDO_CONF_DEBUG);
-    sudoers_debug_register(sudo_conf_debug_files(getprogname()), getprogname());
+    sudoers_debug_register(getprogname(), sudo_conf_debug_files(getprogname()));
 
     /*
      * Arg handling.