summaryrefslogtreecommitdiff
path: root/src/xine-utils/xmlparser.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xine-utils/xmlparser.c')
-rw-r--r--src/xine-utils/xmlparser.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/xine-utils/xmlparser.c b/src/xine-utils/xmlparser.c
index ba0c51994..8619b1be8 100644
--- a/src/xine-utils/xmlparser.c
+++ b/src/xine-utils/xmlparser.c
@@ -213,7 +213,8 @@ static xml_node_t *xml_parser_append_text (xml_node_t *node, xml_node_t *subnode
if (subnode->name == cdata) {
/* most recent node is CDATA - append to it */
char *newtext;
- asprintf (&newtext, "%s%s", subnode->data, text);
+ if (asprintf (&newtext, "%s%s", subnode->data, text) < 0)
+ newtext = NULL;
free (subnode->data);
subnode->data = newtext;
} else {
@@ -226,7 +227,8 @@ static xml_node_t *xml_parser_append_text (xml_node_t *node, xml_node_t *subnode
} else if (node->data) {
/* "no" subtree, but we have existing text - append to it */
char *newtext;
- asprintf (&newtext, "%s%s", node->data, text);
+ if (asprintf (&newtext, "%s%s", node->data, text) < 0)
+ newtext = NULL;
free (node->data);
node->data = newtext;
} else {
@@ -327,7 +329,8 @@ static int xml_parser_get_node_internal (xml_parser_t *xml_parser,
strtoupper(tok);
}
if (state == STATE_Q_NODE) {
- asprintf (&node_name, "?%s", tok);
+ if (asprintf (&node_name, "?%s", tok) < 0)
+ node_name = NULL;
free (*nname_buffer);
*nname_buffer = node_name;
*nname_buffer_size = strlen (node_name) + 1;