diff options
author | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2007-04-22 00:13:46 +0100 |
---|---|---|
committer | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2007-04-22 00:13:46 +0100 |
commit | 559008cadf0bc3457696e145b0abe764132fe92d (patch) | |
tree | 5e6ab363ce12d591345002ce880bb77f92e9f4ac /src | |
parent | a7cb332c30b51b4e27f6e57c6b58dc2d1f73f89c (diff) | |
download | xine-lib-559008cadf0bc3457696e145b0abe764132fe92d.tar.gz xine-lib-559008cadf0bc3457696e145b0abe764132fe92d.tar.bz2 |
Don't drop elements with missing close tags.
Diffstat (limited to 'src')
-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): |