summaryrefslogtreecommitdiffstats
path: root/src/bplist.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bplist.c')
-rw-r--r--src/bplist.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/bplist.c b/src/bplist.c
index b633535..746c13e 100644
--- a/src/bplist.c
+++ b/src/bplist.c
@@ -113,6 +113,8 @@ static plist_t parse_uint_node(char *bnode, uint8_t size, char **next_object)
113 113
114 *next_object = bnode + size; 114 *next_object = bnode + size;
115 data->type = PLIST_UINT; 115 data->type = PLIST_UINT;
116 data->length = sizeof(uint64_t);
117
116 return g_node_new(data); 118 return g_node_new(data);
117} 119}
118 120
@@ -131,6 +133,8 @@ static plist_t parse_real_node(char *bnode, uint8_t size)
131 return NULL; 133 return NULL;
132 } 134 }
133 data->type = PLIST_REAL; 135 data->type = PLIST_REAL;
136 data->length = sizeof(double);
137
134 return g_node_new(data); 138 return g_node_new(data);
135} 139}
136 140
@@ -143,6 +147,8 @@ static plist_t parse_date_node(char *bnode, uint8_t size)
143 data->timeval.tv_sec = (glong) time_real; 147 data->timeval.tv_sec = (glong) time_real;
144 data->timeval.tv_usec = (time_real - (glong) time_real) * G_USEC_PER_SEC; 148 data->timeval.tv_usec = (time_real - (glong) time_real) * G_USEC_PER_SEC;
145 data->type = PLIST_DATE; 149 data->type = PLIST_DATE;
150 data->length = sizeof(GTimeVal);
151
146 return node; 152 return node;
147} 153}
148 154
@@ -154,6 +160,7 @@ static plist_t parse_string_node(char *bnode, uint8_t size)
154 data->strval = (char *) malloc(sizeof(char) * (size + 1)); 160 data->strval = (char *) malloc(sizeof(char) * (size + 1));
155 memcpy(data->strval, bnode, size); 161 memcpy(data->strval, bnode, size);
156 data->strval[size] = '\0'; 162 data->strval[size] = '\0';
163 data->length = strlen(data->strval);
157 164
158 return g_node_new(data); 165 return g_node_new(data);
159} 166}
@@ -166,6 +173,7 @@ static plist_t parse_unicode_node(char *bnode, uint8_t size)
166 data->unicodeval = (wchar_t *) malloc(sizeof(wchar_t) * (size + 1)); 173 data->unicodeval = (wchar_t *) malloc(sizeof(wchar_t) * (size + 1));
167 memcpy(data->unicodeval, bnode, size); 174 memcpy(data->unicodeval, bnode, size);
168 data->unicodeval[size] = '\0'; 175 data->unicodeval[size] = '\0';
176 data->length = wcslen(data->unicodeval);
169 177
170 return g_node_new(data); 178 return g_node_new(data);
171} 179}