diff options
author | Jonathan Beck | 2008-12-13 18:10:39 +0100 |
---|---|---|
committer | Jonathan Beck | 2008-12-13 18:10:39 +0100 |
commit | 2a514976045c878766dc6975d03b1b3eb1a86eed (patch) | |
tree | 340134ccf72ffa2ca4a47e98a7a985f5a6acb2b2 /src/xplist.c | |
parent | 3f0dfcf5f77659877f57c00f307ed46a96d0d0d1 (diff) | |
download | libplist-2a514976045c878766dc6975d03b1b3eb1a86eed.tar.gz libplist-2a514976045c878766dc6975d03b1b3eb1a86eed.tar.bz2 |
Fix node length while parsing XML.
Diffstat (limited to 'src/xplist.c')
-rw-r--r-- | src/xplist.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/xplist.c b/src/xplist.c index 6c27375..9a5698c 100644 --- a/src/xplist.c +++ b/src/xplist.c @@ -230,12 +230,14 @@ void xml_to_node(xmlNodePtr xml_node, plist_t * plist_node) if (!xmlStrcmp(node->name, "true")) { data->boolval = 1; data->type = PLIST_BOOLEAN; + data->length = 1; continue; } if (!xmlStrcmp(node->name, "false")) { data->boolval = 0; data->type = PLIST_BOOLEAN; + data->length = 1; continue; } @@ -243,6 +245,7 @@ void xml_to_node(xmlNodePtr xml_node, plist_t * plist_node) char *strval = xmlNodeGetContent(node); data->intval = g_ascii_strtoull(strval, NULL, 0); data->type = PLIST_UINT; + data->length = 8; continue; } @@ -250,6 +253,7 @@ void xml_to_node(xmlNodePtr xml_node, plist_t * plist_node) char *strval = xmlNodeGetContent(node); data->realval = atof(strval); data->type = PLIST_REAL; + data->length = 8; continue; } @@ -259,12 +263,14 @@ void xml_to_node(xmlNodePtr xml_node, plist_t * plist_node) if (!xmlStrcmp(node->name, "string")) { data->strval = strdup(xmlNodeGetContent(node)); data->type = PLIST_STRING; + data->length = strlen(data->strval); continue; } if (!xmlStrcmp(node->name, "key")) { data->strval = strdup(xmlNodeGetContent(node)); data->type = PLIST_KEY; + data->length = strlen(data->strval); continue; } |