Commit f605777d authored by Martin Szulecki's avatar Martin Szulecki Committed by Jonathan Beck

Make sure to also copy string/data buffers when cloning the node data struct

parent 365e1199
......@@ -148,6 +148,19 @@ static void plist_copy_node(GNode * node, gpointer parent_node_ptr)
assert(data); // plist should always have data
memcpy(newdata, data, sizeof(struct plist_data_s));
plist_type node_type = plist_get_node_type(node);
if (node_type == PLIST_DATA || node_type == PLIST_STRING) {
switch (node_type) {
case PLIST_DATA:
newdata->buff = (uint8_t *) malloc(data->length);
memcpy(newdata->buff, data->buff, data->length);
case PLIST_STRING:
newdata->strval = strdup((char *) data->strval);
default:
break;
}
}
newnode = plist_new_node(newdata);
if (*(plist_t*)parent_node_ptr) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment