diff options
-rw-r--r-- | src/xine-utils/xmlparser.c | 10 |
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): |