]> git.ipfire.org Git - thirdparty/wireguard-go.git/commitdiff
tun: windows: decrease alignment to 4
authorJason A. Donenfeld <Jason@zx2c4.com>
Fri, 5 Jul 2019 05:53:19 +0000 (07:53 +0200)
committerJason A. Donenfeld <Jason@zx2c4.com>
Fri, 5 Jul 2019 05:53:19 +0000 (07:53 +0200)
tun/tun_windows.go

index 613bc9f40bc1f51dc74fcdde897d992fcd474dae..f0acc09f3d8f760bbb743a93391228079df836a8 100644 (file)
@@ -20,7 +20,7 @@ import (
 )
 
 const (
-       packetExchangeAlignment uint32 = 16                               // Number of bytes packets are aligned to in exchange buffers
+       packetExchangeAlignment uint32 =                                // Number of bytes packets are aligned to in exchange buffers
        packetSizeMax           uint32 = 0xf000 - packetExchangeAlignment // Maximum packet size
        packetExchangeSize      uint32 = 0x100000                         // Exchange buffer size (defaults to 1MiB)
        retryRate                      = 4                                // Number of retries per second to reopen device pipe
@@ -255,7 +255,7 @@ func (tun *NativeTun) Read(buff []byte, offset int) (int, error) {
                        // Get packet from the exchange buffer.
                        packet := tun.rdBuff.data[tun.rdBuff.offset:]
                        size := *(*uint32)(unsafe.Pointer(&packet[0]))
-                       pSize := packetAlign(packetExchangeAlignment + size)
+                       pSize := packetAlign(size) + packetExchangeAlignment
                        if packetSizeMax < size || tun.rdBuff.avail < tun.rdBuff.offset+pSize {
                                // Invalid packet size.
                                tun.rdBuff.avail = 0
@@ -363,7 +363,7 @@ func (tun *NativeTun) putTunPacket(buff []byte) error {
        if size > packetSizeMax {
                return errors.New("Packet too big")
        }
-       pSize := packetAlign(packetExchangeAlignment + size)
+       pSize := packetAlign(size) + packetExchangeAlignment
 
        if tun.wrBuff.offset+pSize >= packetExchangeSize {
                // Exchange buffer is full -> flush first.