X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fvde_device.c;h=73ad7136a2e3e10f7e1284249d31520d2e284106;hp=1021f5d34cee34269c6ce4bdde268b858a97008f;hb=390d25f0b80dd7418e147de3561c70461628574d;hpb=41583d5dcfc1277b1a203478de4cce2cd0cda1b1 diff --git a/src/vde_device.c b/src/vde_device.c index 1021f5d3..73ad7136 100644 --- a/src/vde_device.c +++ b/src/vde_device.c @@ -82,19 +82,22 @@ static bool setup_device(void) { } static void close_device(void) { - if(conn) - plug.vde_close(conn); + if(conn) { + plug.vde_close(conn); conn = NULL; + } if(plug.dl_handle) libvdeplug_dynclose(plug); - free(device); + free(device); device = NULL; + + free(iface); iface = NULL; - free(iface); + device_info = NULL; } static bool read_packet(vpn_packet_t *packet) { - int lenin = (ssize_t)plug.vde_recv(conn, packet->data, MTU, 0); + int lenin = (ssize_t)plug.vde_recv(conn, DATA(packet), MTU, 0); if(lenin <= 0) { logger(DEBUG_ALWAYS, LOG_ERR, "Error while reading from %s %s: %s", device_info, device, strerror(errno)); event_exit(); @@ -109,7 +112,7 @@ static bool read_packet(vpn_packet_t *packet) { } static bool write_packet(vpn_packet_t *packet) { - if((ssize_t)plug.vde_send(conn, packet->data, packet->len, 0) < 0) { + if((ssize_t)plug.vde_send(conn, DATA(packet), packet->len, 0) < 0) { if(errno != EINTR && errno != EAGAIN) { logger(DEBUG_ALWAYS, LOG_ERR, "Can't write to %s %s: %s", device_info, device, strerror(errno)); event_exit();