summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/xine-utils/xmlparser.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/xine-utils/xmlparser.c b/src/xine-utils/xmlparser.c
index 82e1f0ecd..7140bea5d 100644
--- a/src/xine-utils/xmlparser.c
+++ b/src/xine-utils/xmlparser.c
@@ -256,11 +256,7 @@ static int xml_parser_get_node_internal (xml_node_t *current_node, char *root_na
lprintf("info: rec %d new subtree %s\n", rec, node_name);
root_names[rec + 1] = node_name;
parse_res = xml_parser_get_node_internal(subtree, root_names, rec + 1, relaxed);
- if (parse_res < -1) {
- /* badly-formed XML (missing close tag) */
- return parse_res + 1 + (parse_res == -2);
- }
- if (parse_res != 0) {
+ if (parse_res == -1 || parse_res > 0) {
return parse_res;
}
if (current_subtree == NULL) {
@@ -270,6 +266,10 @@ static int xml_parser_get_node_internal (xml_node_t *current_node, char *root_na
current_subtree->next = subtree;
current_subtree = subtree;
}
+ if (parse_res < -1) {
+ /* badly-formed XML (missing close tag) */
+ return parse_res + 1 + (parse_res == -2);
+ }
state = STATE_IDLE;
break;
case (T_M_STOP_2):