Hi, as per David's request, a properly git-format-patch formatted patch attached below.
(The bug and fix are *so* obvious if you know where to look) gert On Thu, Nov 10, 2011 at 07:20:04PM +0100, Gert Doering wrote: > Hi, > > I received a bugfix for my IPv6 patch to the Windows TAP driver today, > which affects IPv4 - and there is this open bug with small-size IPv4 > packets in our trac, which this should fix... > > The problem is a missing "break" statement at the end of the IPv6 > block, which now leads to "fall into IPv6 block" and that one has a > larger minimum packet size... > > ACK from me - David, could you please integrate the one-line patch, > and then we need James to compile + sign a new driver (and I think > this warrants a 2.2 bugfix release). > > [I'm not on IRC these days as I'm technically on vacation, but I saw > this mail today and it warrants action] > > gert > > > ----- Forwarded message from Christian Niessner <bug-rep...@secadm.de> ----- > > > @@ -1611,6 +1766,27 @@ AdapterTransmit (IN NDIS_HANDLE p_AdapterContext, > > // Packet looks like IPv4, queue it. > l_PacketBuffer->m_SizeFlags |= TP_TUN; > + > + case ETH_P_IPV6: > + // make sure that packet is large > + // enough to be IPv6 > + if (l_PacketLength > + < ETHERNET_HEADER_SIZE + IPV6_HEADER_SIZE) > + goto no_queue; > + > > [..] > > --- ../tap-win32-latest/tapdrvr.c 2011-11-09 17:12:19.000000000 +0100 > +++ tapdrvr.c 2011-11-10 09:24:24.000000000 +0100 > @@ -1766,6 +1766,7 @@ > > // Packet looks like IPv4, queue it. > l_PacketBuffer->m_SizeFlags |= TP_TUN; > + break; > > case ETH_P_IPV6: > // make sure that packet is large > > > ----- End forwarded message ----- > > -- > USENET is *not* the non-clickable part of WWW! > //www.muc.de/~gert/ > Gert Doering - Munich, Germany g...@greenie.muc.de > fax: +49-89-35655025 g...@net.informatik.tu-muenchen.de > ------------------------------------------------------------------------------ > RSA(R) Conference 2012 > Save $700 by Nov 18 > Register now > http://p.sf.net/sfu/rsa-sfdev2dev1 > _______________________________________________ > Openvpn-devel mailing list > Openvpn-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/openvpn-devel -- USENET is *not* the non-clickable part of WWW! //www.muc.de/~gert/ Gert Doering - Munich, Germany g...@greenie.muc.de fax: +49-89-35655025 g...@net.informatik.tu-muenchen.de
From 3e3f3b57e06f1c4d116c006c81494418c79901cb Mon Sep 17 00:00:00 2001 From: Gert Doering <g...@greenie.muc.de> List-Post: openvpn-devel@lists.sourceforge.net Date: Thu, 10 Nov 2011 20:15:44 +0100 Subject: [PATCH] add missing break between "case IPv4" and "case IPv6", leading to the minimum-size for IPv6 being applied to IPv4 packets, subsequently leading to drop of small-sized IPv4 packets. Bug found & fixed by Christian Niessner. Signed-off-by: Christian Niessner <bug-rep...@secadm.de> Signed-off-by: Gert Doering <g...@greenie.muc.de> Acked-by: Gert Doering <g...@greenie.muc.de> --- tap-win32/tapdrvr.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/tap-win32/tapdrvr.c b/tap-win32/tapdrvr.c index 7ab3916..e5760dc 100755 --- a/tap-win32/tapdrvr.c +++ b/tap-win32/tapdrvr.c @@ -1766,6 +1766,7 @@ AdapterTransmit (IN NDIS_HANDLE p_AdapterContext, // Packet looks like IPv4, queue it. l_PacketBuffer->m_SizeFlags |= TP_TUN; + break; case ETH_P_IPV6: // make sure that packet is large -- 1.7.3.4
pgpDjZEuN2rzJ.pgp
Description: PGP signature