recdb.c (parse_database): Close recdb.f on all exit paths.
sar.c (sar_cleanup): Free the string lists allocated inside config struct.
saxdb.c (saxdb_read_db): Free the previous mondo_db (if any) at first read.
if (fstat(fileno(recdb.f), &statinfo)) {
log_module(MAIN_LOG, LOG_ERROR, "Unable to fstat database file '%s': %s", filename, strerror(errno));
+ fclose(recdb.f);
return NULL;
}
recdb.length = (size_t)statinfo.st_size;
if (recdb.length == 0) {
+ fclose(recdb.f);
return alloc_database();
}
dict_delete(services_byport);
dict_delete(sar_nameservers);
dict_delete(sar_requests);
+ free_string_list(conf.sar_search);
+ free_string_list(conf.sar_nslist);
}
static void
if (!data)
return;
if (db->writer == saxdb_mondo_writer) {
+ free_database(mondo_db);
mondo_db = data;
} else {
db->reader(data);