element->cb, element->cls);
/* save the handle */
GNUNET_MESH_tunnel_set_data(cls_->tunnel, th);
+ GNUNET_free(element);
}
return size;
query_states[dns->s.id].local_port = pkt->src_port;
query_states[dns->s.id].remote_ip = pkt->orig_to;
query_states[dns->s.id].namelen = strlen((char*)dns->data) + 1;
+ if (query_states[dns->s.id].name != NULL)
+ GNUNET_free(query_states[dns->s.id].name);
query_states[dns->s.id].name = GNUNET_malloc(query_states[dns->s.id].namelen);
memcpy(query_states[dns->s.id].name, dns->data, query_states[dns->s.id].namelen);
memcpy(&cls_->dns, dns, cls_->hdr.size - sizeof(struct GNUNET_MessageHeader));
GNUNET_SCHEDULER_add_now(send_mesh_query, cls_);
- goto out;
+ goto outfree;
}