summaryrefslogtreecommitdiffstats
path: root/src/xplist.c
diff options
context:
space:
mode:
authorGravatar Jonathan Beck2008-12-13 18:10:39 +0100
committerGravatar Jonathan Beck2008-12-13 18:10:39 +0100
commit2a514976045c878766dc6975d03b1b3eb1a86eed (patch)
tree340134ccf72ffa2ca4a47e98a7a985f5a6acb2b2 /src/xplist.c
parent3f0dfcf5f77659877f57c00f307ed46a96d0d0d1 (diff)
downloadlibplist-2a514976045c878766dc6975d03b1b3eb1a86eed.tar.gz
libplist-2a514976045c878766dc6975d03b1b3eb1a86eed.tar.bz2
Fix node length while parsing XML.
Diffstat (limited to 'src/xplist.c')
-rw-r--r--src/xplist.c6
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)
230 if (!xmlStrcmp(node->name, "true")) { 230 if (!xmlStrcmp(node->name, "true")) {
231 data->boolval = 1; 231 data->boolval = 1;
232 data->type = PLIST_BOOLEAN; 232 data->type = PLIST_BOOLEAN;
233 data->length = 1;
233 continue; 234 continue;
234 } 235 }
235 236
236 if (!xmlStrcmp(node->name, "false")) { 237 if (!xmlStrcmp(node->name, "false")) {
237 data->boolval = 0; 238 data->boolval = 0;
238 data->type = PLIST_BOOLEAN; 239 data->type = PLIST_BOOLEAN;
240 data->length = 1;
239 continue; 241 continue;
240 } 242 }
241 243
@@ -243,6 +245,7 @@ void xml_to_node(xmlNodePtr xml_node, plist_t * plist_node)
243 char *strval = xmlNodeGetContent(node); 245 char *strval = xmlNodeGetContent(node);
244 data->intval = g_ascii_strtoull(strval, NULL, 0); 246 data->intval = g_ascii_strtoull(strval, NULL, 0);
245 data->type = PLIST_UINT; 247 data->type = PLIST_UINT;
248 data->length = 8;
246 continue; 249 continue;
247 } 250 }
248 251
@@ -250,6 +253,7 @@ void xml_to_node(xmlNodePtr xml_node, plist_t * plist_node)
250 char *strval = xmlNodeGetContent(node); 253 char *strval = xmlNodeGetContent(node);
251 data->realval = atof(strval); 254 data->realval = atof(strval);
252 data->type = PLIST_REAL; 255 data->type = PLIST_REAL;
256 data->length = 8;
253 continue; 257 continue;
254 } 258 }
255 259
@@ -259,12 +263,14 @@ void xml_to_node(xmlNodePtr xml_node, plist_t * plist_node)
259 if (!xmlStrcmp(node->name, "string")) { 263 if (!xmlStrcmp(node->name, "string")) {
260 data->strval = strdup(xmlNodeGetContent(node)); 264 data->strval = strdup(xmlNodeGetContent(node));
261 data->type = PLIST_STRING; 265 data->type = PLIST_STRING;
266 data->length = strlen(data->strval);
262 continue; 267 continue;
263 } 268 }
264 269
265 if (!xmlStrcmp(node->name, "key")) { 270 if (!xmlStrcmp(node->name, "key")) {
266 data->strval = strdup(xmlNodeGetContent(node)); 271 data->strval = strdup(xmlNodeGetContent(node));
267 data->type = PLIST_KEY; 272 data->type = PLIST_KEY;
273 data->length = strlen(data->strval);
268 continue; 274 continue;
269 } 275 }
270 276