Fix crash in conf, improves debug logging for rbl.
[apps/pfixtools.git] / postlicyd / config.c
index d1e4d83..f2b8dbe 100644 (file)
@@ -77,9 +77,13 @@ config_param_register("verify_filter");
  */
 config_param_register("port");
 
+
+static config_t *global_config = NULL;
+
 static inline config_t *config_new(void)
 {
     config_t *config = p_new(config_t, 1);
+    global_config = config;
     return config;
 }
 
@@ -97,9 +101,17 @@ void config_delete(config_t **config)
     if (*config) {
         config_close(*config);
         p_delete(config);
+        global_config = NULL;
     }
 }
 
+static void config_exit()
+{
+    if (global_config) {
+        config_delete(&global_config);
+    }
+}
+module_exit(config_exit);
 
 static bool config_second_pass(config_t *config)
 {
@@ -411,7 +423,7 @@ config_t *config_read(const char *file)
     config_t *config = config_new();
     config->filename = file;
     if (!config_reload(config)) {
-        p_delete(&config);
+        config_delete(&config);
         return NULL;
     }
     return config;