From: Guus Sliepen Date: Fri, 5 Jan 2007 04:49:02 +0000 (+0000) Subject: Fix generic BSD tun device to write only the actual packet length. X-Git-Tag: release-1.0.7~4 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=5214ece03009a916159c710cf436af1e92909f41;p=oweals%2Ftinc.git Fix generic BSD tun device to write only the actual packet length. Due to a copy&paste bug, it tried to write a packet with the maximum size. This was not a problem until the maximum size was increased to support VLANs. --- diff --git a/src/bsd/device.c b/src/bsd/device.c index 8649d89..419c38f 100644 --- a/src/bsd/device.c +++ b/src/bsd/device.c @@ -245,7 +245,7 @@ bool write_packet(vpn_packet_t *packet) case DEVICE_TYPE_TUNIFHEAD: { u_int32_t type; - struct iovec vector[2] = {{&type, sizeof(type)}, {packet->data + 14, MTU - 14}}; + struct iovec vector[2] = {{&type, sizeof(type)}, {packet->data + 14, packet->len - 14}}; int af; af = (packet->data[12] << 8) + packet->data[13];