X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fmeshlink.c;h=90d64648ae8945384ac110e1ac3a716ab2a27c72;hb=99b4836a1e463a225a003623cce09f462d77f4d2;hp=f0a1b759fe989397c288149600f4fbb2e8316938;hpb=fe75ca04fafa140c4fec90b61dac669d271e2acf;p=meshlink diff --git a/src/meshlink.c b/src/meshlink.c index f0a1b759..90d64648 100644 --- a/src/meshlink.c +++ b/src/meshlink.c @@ -1604,6 +1604,12 @@ void meshlink_close(meshlink_handle_t *mesh) { close(mesh->netns); } + for(vpn_packet_t *packet; (packet = meshlink_queue_pop(&mesh->outpacketqueue));) { + free(packet); + } + + meshlink_queue_exit(&mesh->outpacketqueue); + free(mesh->name); free(mesh->appname); free(mesh->confbase); @@ -1778,6 +1784,8 @@ void meshlink_send_from_queue(event_loop_t *loop, meshlink_handle_t *mesh) { mesh->self->in_packets++; mesh->self->in_bytes += packet->len; route(mesh, mesh->self, packet); + + free(packet); } ssize_t meshlink_get_pmtu(meshlink_handle_t *mesh, meshlink_node_t *destination) { @@ -2743,6 +2751,8 @@ bool meshlink_import(meshlink_handle_t *mesh, const char *data) { pthread_mutex_unlock(&(mesh->mesh_mutex)); + free(buf); + if(!packmsg_done(&in)) { logger(mesh, MESHLINK_ERROR, "Invalid data\n"); meshlink_errno = MESHLINK_EPEER;