diff options
author | Olivier Andrieu <oliv__a@users.sourceforge.net> | 2004-07-31 18:28:10 +0000 |
---|---|---|
committer | Olivier Andrieu <oliv__a@users.sourceforge.net> | 2004-07-31 18:28:10 +0000 |
commit | 3abcc7d28d73559c1f6d585c619c7298ff79101e (patch) | |
tree | a1d8892771aaca071d98d6c548e3b6ff60ab9514 /bus | |
parent | 1239d9328095553e034ee44c627901ab28c9193d (diff) |
* bus/config-parser.c (bus_config_parser_new): fix an invalid _unref
in the SELinux support.
* doc/busconfig.dtd: update DTD for SELinux support.
* bus/config-loader-libxml.c: fix error handler and parser
initialisation/cleanup. OOM test now works with libxml2 HEAD.
* configure.in: remove the warning about libxml2
* dbus/dbus-bus.c: silence doxygen warning.
Diffstat (limited to 'bus')
-rw-r--r-- | bus/config-loader-libxml.c | 43 | ||||
-rw-r--r-- | bus/config-parser.c | 3 |
2 files changed, 21 insertions, 25 deletions
diff --git a/bus/config-loader-libxml.c b/bus/config-loader-libxml.c index a1b8f838..51ee1e59 100644 --- a/bus/config-loader-libxml.c +++ b/bus/config-loader-libxml.c @@ -122,13 +122,12 @@ xml_text_reader_error (void *arg, xmlErrorPtr xml_error) xml_error->code, xml_error->message); #endif - if (!dbus_error_is_set (error) && - (xml_error->level == XML_ERR_ERROR || - xml_error->level == XML_ERR_FATAL)) + if (!dbus_error_is_set (error)) { - if (xml_error->code != XML_ERR_NO_MEMORY) + if (xml_error->code == XML_ERR_NO_MEMORY) _DBUS_SET_OOM (error); - else + else if (xml_error->level == XML_ERR_ERROR || + xml_error->level == XML_ERR_FATAL) dbus_set_error (error, DBUS_ERROR_FAILED, "Error loading config file: '%s'", xml_error->message); @@ -146,7 +145,6 @@ bus_config_load (const DBusString *file, xmlTextReader *reader; BusConfigParser *parser; DBusString dirname, data; - const char *data_str; DBusError tmp_error; int ret; @@ -155,17 +153,6 @@ bus_config_load (const DBusString *file, parser = NULL; reader = NULL; - if (is_toplevel) - { - /* xmlMemSetup only fails if one of the functions is NULL */ - xmlMemSetup (dbus_free, - dbus_malloc, - dbus_realloc, - _dbus_strdup); - xmlInitParser (); - xmlSetGenericErrorFunc (NULL, xml_shut_up); - } - if (!_dbus_string_init (&dirname)) { _DBUS_SET_OOM (error); @@ -179,6 +166,17 @@ bus_config_load (const DBusString *file, return NULL; } + if (is_toplevel) + { + /* xmlMemSetup only fails if one of the functions is NULL */ + xmlMemSetup (dbus_free, + dbus_malloc, + dbus_realloc, + _dbus_strdup); + xmlInitParser (); + xmlSetGenericErrorFunc (NULL, xml_shut_up); + } + if (!_dbus_string_get_dirname (file, &dirname)) { _DBUS_SET_OOM (error); @@ -195,9 +193,8 @@ bus_config_load (const DBusString *file, if (!_dbus_file_get_contents (&data, file, error)) goto failed; - data_str = _dbus_string_get_const_data (&data); - - reader = xmlReaderForMemory (data_str, _dbus_string_get_length (&data), + reader = xmlReaderForMemory (_dbus_string_get_const_data (&data), + _dbus_string_get_length (&data), NULL, NULL, 0); if (reader == NULL) { @@ -295,8 +292,6 @@ bus_config_load (const DBusString *file, reader_out: xmlFreeTextReader (reader); - if (is_toplevel) - xmlCleanupParser(); reader = NULL; if (dbus_error_is_set (&tmp_error)) { @@ -308,6 +303,8 @@ bus_config_load (const DBusString *file, goto failed; _dbus_string_free (&dirname); _dbus_string_free (&data); + if (is_toplevel) + xmlCleanupParser(); _DBUS_ASSERT_ERROR_IS_CLEAR (error); return parser; @@ -315,6 +312,8 @@ bus_config_load (const DBusString *file, _DBUS_ASSERT_ERROR_IS_SET (error); _dbus_string_free (&dirname); _dbus_string_free (&data); + if (is_toplevel) + xmlCleanupParser(); if (parser) bus_config_parser_unref (parser); _dbus_assert (reader == NULL); /* must go to reader_out first */ diff --git a/bus/config-parser.c b/bus/config-parser.c index 29fade16..89492f03 100644 --- a/bus/config-parser.c +++ b/bus/config-parser.c @@ -346,9 +346,6 @@ bus_config_parser_new (const DBusString *basedir, _dbus_string_free (&parser->basedir); - if (parser->service_sid_table == NULL) - _dbus_hash_table_unref (parser->service_sid_table); - dbus_free (parser); return NULL; } |