Hi, bugfixing the tap driver is nice and well, but I think we MUST bump the driver version as well, and we SHOULD have a check in tun.c to refuse operation if the known-buggy version (9.8) is detected.
Patches below. gert -- 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 c8e7ad5ed0a91d8b595e8b1862416f226a86968f Mon Sep 17 00:00:00 2001 From: Gert Doering <g...@greenie.muc.de> List-Post: openvpn-devel@lists.sourceforge.net Date: Wed, 23 Nov 2011 11:07:09 +0100 Subject: [PATCH 1/2] bump tap driver version from 9.8 to 9.9 (bugfixed tapdrvr.c regarding small IPv4 packets) --- version.m4 | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/version.m4 b/version.m4 index 78e69aa..514ae72 100644 --- a/version.m4 +++ b/version.m4 @@ -3,4 +3,4 @@ define(PRODUCT_VERSION,[2.x-master]) dnl define the TAP version define(PRODUCT_TAP_ID,[tap0901]) define(PRODUCT_TAP_WIN32_MIN_MAJOR,[9]) -define(PRODUCT_TAP_WIN32_MIN_MINOR,[8]) +define(PRODUCT_TAP_WIN32_MIN_MINOR,[9]) -- 1.7.3.4
From ce6329e86dfd4b4af1371c09abf06795540fa28a Mon Sep 17 00:00:00 2001 From: Gert Doering <g...@greenie.muc.de> List-Post: openvpn-devel@lists.sourceforge.net Date: Wed, 23 Nov 2011 11:11:54 +0100 Subject: [PATCH 2/2] log error message and exit for "win32, tun mode, tap driver version 9.8" (driver is known-buggy for small IPv4 packets in tun mode) --- tun.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/tun.c b/tun.c index c8ac394..70d9f5a 100644 --- a/tun.c +++ b/tun.c @@ -4584,6 +4584,14 @@ open_tun (const char *dev, const char *dev_type, const char *dev_node, struct tu msg( M_INFO, "WARNING: Tap-Win32 driver version %d.%d does not support IPv6 in TUN mode. IPv6 will be disabled. Upgrade to Tap-Win32 9.8 (2.2-beta3 release or later) or use TAP mode to get IPv6", (int) info[0], (int) info[1] ); tt->ipv6 = false; } + + /* tap driver 9.8 (2.2.0 and 2.2.1 release) is buggy + */ + if ( tt->type == DEV_TYPE_TUN && + info[0] == 9 && info[1] == 8) + { + msg( M_FATAL, "ERROR: Tap-Win32 driver version %d.%d is buggy regarding small IPv4 packets in TUN mode. Upgrade to Tap-Win32 9.9 (2.2.2 release or later) or use TAP mode", (int) info[0], (int) info[1] ); + } } /* get driver MTU */ -- 1.7.3.4
pgpJCL1tRBSEU.pgp
Description: PGP signature