diff options
Diffstat (limited to 'bus/config-loader-libxml.c')
-rw-r--r-- | bus/config-loader-libxml.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/bus/config-loader-libxml.c b/bus/config-loader-libxml.c index 74cfd7dc..250fbd2f 100644 --- a/bus/config-loader-libxml.c +++ b/bus/config-loader-libxml.c @@ -78,6 +78,7 @@ bus_config_load (const DBusString *file, const char *filename; BusConfigParser *parser; DBusError tmp_error; + int ret; _DBUS_ASSERT_ERROR_IS_CLEAR (error); @@ -122,7 +123,7 @@ bus_config_load (const DBusString *file, xmlTextReaderSetErrorHandler (reader, xml_text_reader_error, &tmp_error); - while (xmlTextReaderRead (reader) == 1) + while ((ret = xmlTextReaderRead (reader)) == 1) { int type; @@ -142,6 +143,14 @@ bus_config_load (const DBusString *file, * manually handle stuff like < */ } + + if (ret == -1) + { + if (!dbus_error_is_set (&tmp_error)) + dbus_set_error (&tmp_error, + DBUS_ERROR_FAILED, + "Unknown failure loading configuration file"); + } reader_out: xmlFreeTextReader (reader); |