diff --git a/daemon/src/config/yamlparser.cpp b/daemon/src/config/yamlparser.cpp index d4462b77a66f43787278387d47dfde3286ab0cfd..4f7eed53f8a96feb28d0a7f9eed431b7e12c2f1a 100644 --- a/daemon/src/config/yamlparser.cpp +++ b/daemon/src/config/yamlparser.cpp @@ -63,9 +63,10 @@ YamlParser::YamlParser (const char *file) : filename (file) YamlParser::~YamlParser() { - fclose (fd); - - yaml_parser_delete (&parser); + if (fd) { + fclose (fd); + yaml_parser_delete (&parser); + } for (int i = 0; i < eventNumber; i++) yaml_event_delete (&events[i]); diff --git a/daemon/src/managerimpl.cpp b/daemon/src/managerimpl.cpp index f41b083cdf12e4bc8ea491c86c7aa5bfb326f3fc..28e3f95c767ce8c642f5ec788f64a77bfd610a7e 100644 --- a/daemon/src/managerimpl.cpp +++ b/daemon/src/managerimpl.cpp @@ -98,7 +98,7 @@ void ManagerImpl::init (std::string config_file) _debug ("Manager: configuration file path: %s", _path.c_str()); - Conf::YamlParser *parser; + Conf::YamlParser *parser = NULL; try { parser = new Conf::YamlParser (_path.c_str()); @@ -107,6 +107,7 @@ void ManagerImpl::init (std::string config_file) parser->constructNativeData(); } catch (Conf::YamlParserException &e) { _error ("Manager: %s", e.what()); + fflush(stderr); delete parser; parser = NULL; }