summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDarren Salt <linux@youmustbejoking.demon.co.uk>2007-04-22 00:13:46 +0100
committerDarren Salt <linux@youmustbejoking.demon.co.uk>2007-04-22 00:13:46 +0100
commit559008cadf0bc3457696e145b0abe764132fe92d (patch)
tree5e6ab363ce12d591345002ce880bb77f92e9f4ac /src
parenta7cb332c30b51b4e27f6e57c6b58dc2d1f73f89c (diff)
downloadxine-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.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):