aboutsummaryrefslogtreecommitdiffstats
path: root/storage_xml.c
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2006-09-17 17:30:35 +0200
committerWilmer van der Gaast <wilmer@gaast.net>2006-09-17 17:30:35 +0200
commit8320a7a0012f868e5878a5a9f52676a5fece02e1 (patch)
tree7d14fb02bea257c89480a8c538a9d9c9bcf3eea2 /storage_xml.c
parent0383943c38ee308805798974bfccbd3327369c6a (diff)
Strings passed to xml_text aren't necessarily \0-terminated, so don't count
on that anymore.
Diffstat (limited to 'storage_xml.c')
-rw-r--r--storage_xml.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/storage_xml.c b/storage_xml.c
index 2585b475..52240a36 100644
--- a/storage_xml.c
+++ b/storage_xml.c
@@ -226,11 +226,15 @@ static void xml_end_element( GMarkupParseContext *ctx, const gchar *element_name
}
}
-static void xml_text( GMarkupParseContext *ctx, const gchar *text, gsize text_len, gpointer data, GError **error )
+static void xml_text( GMarkupParseContext *ctx, const gchar *text_orig, gsize text_len, gpointer data, GError **error )
{
+ char text[text_len+1];
struct xml_parsedata *xd = data;
irc_t *irc = xd->irc;
+ strncpy( text, text_orig, text_len );
+ text[text_len] = 0;
+
if( xd->pass_st < XML_PASS_OK )
{
/* Let's not parse anything else if we only have to check