]> jfr.im git - solanum.git/blobdiff - src/s_conf.c
s_conf: Don't leak log file paths when loading default conf
[solanum.git] / src / s_conf.c
index e858dce887b01ee9cf5f8896672e38a995a0a79e..ffd669284a206e36564a081e7b0209626be92fe6 100644 (file)
@@ -732,6 +732,7 @@ set_default_conf(void)
        ConfigFileEntry.fname_operlog = NULL;
        ConfigFileEntry.fname_foperlog = NULL;
        ConfigFileEntry.fname_serverlog = NULL;
+       ConfigFileEntry.fname_killlog = NULL;
        ConfigFileEntry.fname_klinelog = NULL;
        ConfigFileEntry.fname_operspylog = NULL;
        ConfigFileEntry.fname_ioerrorlog = NULL;
@@ -1487,6 +1488,26 @@ clear_out_old_conf(void)
        rb_free(ConfigFileEntry.kline_reason);
        ConfigFileEntry.kline_reason = NULL;
 
+       /* clean out log */
+       rb_free(ConfigFileEntry.fname_userlog);
+       ConfigFileEntry.fname_userlog = NULL;
+       rb_free(ConfigFileEntry.fname_fuserlog);
+       ConfigFileEntry.fname_fuserlog = NULL;
+       rb_free(ConfigFileEntry.fname_operlog);
+       ConfigFileEntry.fname_operlog = NULL;
+       rb_free(ConfigFileEntry.fname_foperlog);
+       ConfigFileEntry.fname_foperlog = NULL;
+       rb_free(ConfigFileEntry.fname_serverlog);
+       ConfigFileEntry.fname_serverlog = NULL;
+       rb_free(ConfigFileEntry.fname_killlog);
+       ConfigFileEntry.fname_killlog = NULL;
+       rb_free(ConfigFileEntry.fname_klinelog);
+       ConfigFileEntry.fname_klinelog = NULL;
+       rb_free(ConfigFileEntry.fname_operspylog);
+       ConfigFileEntry.fname_operspylog = NULL;
+       rb_free(ConfigFileEntry.fname_ioerrorlog);
+       ConfigFileEntry.fname_ioerrorlog = NULL;
+
        RB_DLINK_FOREACH_SAFE(ptr, next_ptr, service_list.head)
        {
                rb_free(ptr->data);