done_ok:
cout << val << std::endl;
+ free(val);
exit(0);
}
printf("error parsing %s\n", cl->get_val());
}
} else {
- section->conf_map[cl->get_norm_var()] = cl;
+ char *norm_var = cl->get_norm_var();
+ section->conf_map[norm_var] = cl;
+ free(norm_var);
global_list.push_back(cl);
section->conf_list.push_back(cl);
}
} else if (cl->get_section()) {
section = _add_section(cl->get_section(), cl);
+ } else {
+ delete cl;
}
l = 0;
break;
static ConfFile *cf = NULL;
static ExportControl *ec = NULL;
+class ConfFileDestructor
+{
+public:
+ ConfFileDestructor() {}
+ ~ConfFileDestructor() {
+ if (cf) {
+ delete cf;
+ cf = NULL;
+ }
+ }
+};
+
+static ConfFileDestructor cfd;
+
// page size crap, see page.h
int _get_bits_of(int v) {
int n = 0;