From patchwork Wed Jul 17 11:42:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wilson Peng X-Patchwork-Id: 1961599 X-Patchwork-Delegate: aserdean@cloudbasesolutions.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=vmware.com header.i=@vmware.com header.a=rsa-sha256 header.s=selector2 header.b=Nn4OK+pt; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=2605:bc80:3010::133; helo=smtp2.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org) Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WPDZl4znxz1xqc for ; Wed, 17 Jul 2024 21:42:55 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 4AC7440DFB; Wed, 17 Jul 2024 11:42:53 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id Al34jIHunMSs; Wed, 17 Jul 2024 11:42:52 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=2605:bc80:3010:104::8cd3:938; helo=lists.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 0E41540177 Authentication-Results: smtp2.osuosl.org; dkim=fail reason="signature verification failed" (1024-bit key, unprotected) header.d=vmware.com header.i=@vmware.com header.a=rsa-sha256 header.s=selector2 header.b=Nn4OK+pt Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp2.osuosl.org (Postfix) with ESMTPS id 0E41540177; Wed, 17 Jul 2024 11:42:51 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 2C1ACC0A97; Wed, 17 Jul 2024 11:42:51 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) by lists.linuxfoundation.org (Postfix) with ESMTP id BE492C0A96 for ; Wed, 17 Jul 2024 11:42:49 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id B13D0408F0 for ; Wed, 17 Jul 2024 11:42:49 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id 8_h-Y33EKcWs for ; Wed, 17 Jul 2024 11:42:48 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2a01:111:f403:c112::; helo=cy4pr05cu001.outbound.protection.outlook.com; envelope-from=svc.ovs-community@vmware.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp4.osuosl.org 5136B401D5 Authentication-Results: smtp4.osuosl.org; dmarc=pass (p=quarantine dis=none) header.from=vmware.com DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 5136B401D5 Authentication-Results: smtp4.osuosl.org; dkim=pass (1024-bit key, unprotected) header.d=vmware.com header.i=@vmware.com header.a=rsa-sha256 header.s=selector2 header.b=Nn4OK+pt Received: from CY4PR05CU001.outbound.protection.outlook.com (mail-westcentralusazlp170100000.outbound.protection.outlook.com [IPv6:2a01:111:f403:c112::]) by smtp4.osuosl.org (Postfix) with ESMTPS id 5136B401D5 for ; Wed, 17 Jul 2024 11:42:47 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=djN/DRkNo7XJWUDGVWLCV9Ey0QL/NOYmlBkSbboHCdbbSavOltuto4MhB0HN9m0kybajB2cxIu9kYcJXu8aQ7cwdiTtTl3CXV/CVYX61HOroGWij7iy1Dcg+65TTrvu35dRZzheLKdUgr1zqY23zXTMRqurpWKI/V5VMeC9gknzaA4eUQURcHLCn5KPBu0+mt/9RDpv+wc/WVV1Z6RahJwdI7LrSH2nrzDsY4UrTS5KrtCbOPGweMTbgaLoDUV4/za88y/h0/TzZiG8jxoilm7S5tYZqQjvx78eED29tLmgCfhANzzC79zdaOhackUGNx2mRhA796hMgkJkD0P8Y1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9JLfjyOqyTuYdxYvU2IWah4p9OqC5U2heIk3yGY/Zfk=; b=Dxz1rOccTtqtXEigbPNJBZwq3gjGPga2JNZqAroxpKE+rZZORcy5TiNZIXPO7P0UTM1sujWDDsuaXvL2S4tPi+MLKEuGSGsWZt26ZBucrVnDZt926THKDHMNBl4eQICh2t8AC+30PVxzg7HxD55yDWR8zYNNeP4fupXDjXXqMrWv/rorqAxDBONdo14u3xpcjC8F2BL3zaPWtX9kKS9JFr7eC2fxR4bu/mxSAPZSxyJ3UPij5gFmqP+ftjO1sKbdLanjXFuZHw2WJVrIRIcywnPcr3uldMaTV5PTSVJOD4nRY00534aNSxEze7XuEJiCGIKcfA57t92NTWC8ELk4UA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9JLfjyOqyTuYdxYvU2IWah4p9OqC5U2heIk3yGY/Zfk=; b=Nn4OK+ptdat4CT/tM+O6iIYdQZp0GImxkHM/4ra6dhVVynmIcbGMGvyyyLnJCtqSQ6pVcvfHAvULMPcluh5Jvv31TNq2YiypRfusj+oSUj7nPR7Lt/Gc1WYHXht1Cz9dbJQfiN1Lg/mG/bF2TkDaEVwTNUJxF1DuLH4MubE77JY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vmware.com; Received: from PH7PR05MB9225.namprd05.prod.outlook.com (2603:10b6:510:1f3::8) by CH0PR05MB10256.namprd05.prod.outlook.com (2603:10b6:610:18b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.15; Wed, 17 Jul 2024 11:42:44 +0000 Received: from PH7PR05MB9225.namprd05.prod.outlook.com ([fe80::19c1:1817:cf4f:e888]) by PH7PR05MB9225.namprd05.prod.outlook.com ([fe80::19c1:1817:cf4f:e888%5]) with mapi id 15.20.7762.027; Wed, 17 Jul 2024 11:42:43 +0000 To: dev@openvswitch.org Date: Wed, 17 Jul 2024 19:42:29 +0800 Message-Id: <20240717114229.95763-1-svc.ovs-community@vmware.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) X-ClientProxiedBy: SJ0PR13CA0031.namprd13.prod.outlook.com (2603:10b6:a03:2c2::6) To PH7PR05MB9225.namprd05.prod.outlook.com (2603:10b6:510:1f3::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR05MB9225:EE_|CH0PR05MB10256:EE_ X-MS-Office365-Filtering-Correlation-Id: a28114ff-8587-4edd-e0af-08dca65591b2 X-LD-Processed: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0,ExtFwd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|366016|376014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: QvzqpG0fx/e7A3oZoWyQG2hl1jeeYr+Tu9BrfBNktBlBOOrcWPpXpv99D7LUvslKZzpkrLg0sTSKCNVrqQARhVAavSbqMSKnZMjRD4CpWjhofULK2EycLqAFRpLq9pJtiMF3yqA1YJucGrajXr7XNJf2b6YhrLeWIVbXcYlJRokOJ/QOhOMlhQTklmfnjx/TaToAZSpsLNDVh+jI7ABIMz1QGrEckRJwRL+E+s3uyG0f0Foi1wNWpr/spmBYbCkOHjYkNX6SZiF3t1WZm8WMBEcY8RSrnQfkYn47cW3dNuUnYNLAx5ohc+PWXxvnwxHm0ZYg144/uHfwmQzSW0JPSwbuGeNnA8b/sVBBvOr2kFBepl6MXNW/qCJFyLk9y3oaf3HbX5wfQVH4lglh2chNTh4PzMRdtJ/4SRLDwvA7ldKqtzpe2NKdOkw68E31B/LzYEnVqRCYRCkckeNq8fhiszOxFIyGL3HsYEQXI4Y1MRI8Tt2WjFifxsjvqg4VKwt0rZzTS+AYbGYRzT4gpTHzezgDvDFdTVgHSWjCER89OGFRwAp6LWoAkrxadAdepqvA9CrUJWfBxVMnMPzr+0MgSYqPkiJDTuwRgy90PAeMJAXBh1VdhCqgNAJD1bvSLQB5pjtQ252Whj/XZ8qDWhiWgYeL0ekBdPXLdUe2ZJ49N58tamTiaxHTRxIisXSr1IV7I/rb1/bBfC7tqljmyUAhLDpxsRF9558hD2heUjvywVys9If1SizKQ/zH1chMEXtRGQJAeJ2Wc7wXPO7BukIxj2VwGjFOG/oQDXqjtbBKAXsT02cA3oShITeKIddhYZC5igKJlfTwxR646s5weKuN7jiNphtcWo28A5IvRACcuezymqE//sVw4cQLUAE7hLfS71n0qEb4tSWzxu4nxZk2OM3w/Mv48EaPsgGTWaKICUEsoRuU1vdtNMECcj56YtTKCXia8frjSkSHZSpSeLsEvA+d+9aVedwHfnwId+UhQ4vyjg3cKfaozLiPZVYXdBzMRIZZ9izoWNZ1FalQpoL13m5x8XXhm8I1C/6wLi1dtb6yhCB3Dhcv3m6/c+Rw1rRAG4VGLiyFVT3/xBdjodAAb62yT9xzhK3OGeta/dI1dj3MBt5FSDcGDZyCcStrvb5VW3fG6eZRyMESAeqB8OlOzP+IYaseNRtHkCRsFQ0QvXT3/l1OwDyGCiJjdMxbejIvsjLfwKdQXTjQVVPYeZtZ0Tsq+SAavp2Cq80wc4N3P+IKThdiRYAmf5x242bfy0Cskn1fo6HU+DbiJSL4Vfxidhiq2Lb3c46xeiSLi5arRelWMCbubLztMtdZheiM9o370UnAchtgPs6LopY0cVgcekBCA/NKSiukZvnBSM3U4FffIDdHVMvNGssfYfKO/9b10NVj884dtxuCEUkVqwMuCA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR05MB9225.namprd05.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(52116014)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: H2S0qdBRvrks7DpE8mXImn42Yxjf9liNmGNxXrfLhHXIl5+ZmIJamWy2eSHWzM1h05bf96XEFoA00SYmD4hc00TmnqT0mY1mUBMjxJZXPpXOHTWUEHFFqSMSpvCnunqD9FrAUe1x4VKmt6qc8jIRW5Jr5q3Ajbi6jq0ej6DbuxT705Z7dpk3tuXaTTOHaXwHNiuffCxPjJQdcOdSg3A8KS0h9V4gR/bzRfxMeUFW4knLTE6YZeOHjdiRvsWUcsjcP0SRwws0u2arLC2fnO7AEeTKsvn/iSnT50Wpo/yrA7wj6swUQx/wSPLjljOpkrWBM8LGuXkbp6HLGUckLpWuMx5iCPVp3UulRYC/bBzPEaSXxzKLOR6goO8ODIzcy8XY8W2dj2ZU+1n47TjvJnRWb/+ss/QyvPfbqDc2H7NOwGktjbzQKgSaTOjKcqAPG1qKLZd6PnUhQS/aJ8BMUDHxdKUHsGHpgsWccBSKJZjmQQiR3oeUQmTVdiUFZB3Lbd3qBNQsh/Ok5Bo2hVDbI6P5AYvVwMubkT4L0Zjjd9NQZ6th/svY/qDNfNWh5B2Xu0nrmZuFEY3mEFa17Lc2nYFrgd7EUm3HYgup3XtHgkiyuN90UjaMyzZ+A7fhh6xW0RPQ/QY7+Y8D0JRG6tl4JO7rEWnrAr0BP0Zz73cSkA9SD2+ZTat0zegHzfM8l68aDH9SzypiD8JhKW7QDYiUE0qKARTTkN9akfT9B8Iv2ZkjcrtC3SUeBm7lXvNy2HX0Kcd1hZ+bp7a3DsU9wBMRyd0STH+qZ9wkSHG/fkQWepWeKopwrO19WrRLiB6gRo0yenMRR/ZfI3LR0xWF1U44F1FnD7JxvdlNpv/cHJOxufOW0vN3Tir5dsccIhoOcfo7uqMSXNHRb5jAwEiqbXyX7ncY3A8Hm9ROuNa0dTxkgyQ6XaImivTzw4CcfsUgbUI+qTgNG4Rc4NS4xbXzv5Qkk2P4tXMWYZtHOdV8QMM+NMSgzaSf4IzkywiDFZ3DLwMW6rKs0w/lhVU5K5L4vyAF6J6uyKZ+oMlH4zVOZhv/79NeO+jDGks3dOyU4VtCt7LETSra9i2pHMEx+MTTZ4qnHiEZQwHExoWuESf1t5EG7xKMnKBT3S9+QBN7Zw3HFup/Wqgbz2XZxfH4YhtlCkmT5h9g0zz3N14x8neUCismOz8K3fLgbwT2v8P9uJvAcKYMY23sv0oB4QiposPkAxbS/PUgOR57WZKyfFQbe6ds09wsLKF5ugbfUDEwqpAXDupyqXuA0TB9WOw/YSRlJAm7uYemkUtoIXzvL1edrcFd8vYi0W7smm/ONNC9ieFCPDZkpqsv/UOXTU9B0hncuqQgEceTiXMlhYugqhnlTNAfj0CBiUQbtJ2ntSxUt7w5rofCPDFxtVCElZCrex3JjmioLO/662QYmtHoXAkUC1xj4sV9+s4gAXet8skKGc/uHkAFyN3aH7hHGW9R7YWnzNTCcs2uDeiKmq+4iDbZh2IM4sL3lg2y+o9JUvbjPrvLtTCC1RGMGV3/fQWYD4vzYOKCDg5ABvUkoda9ATW8b+Dcb2AaeRpIZeZ+mCv9Sgeh1r9uriFYPKCaoKX0a7tcDslwp7SJ9A== X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-Network-Message-Id: a28114ff-8587-4edd-e0af-08dca65591b2 X-MS-Exchange-CrossTenant-AuthSource: PH7PR05MB9225.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jul 2024 11:42:43.3022 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /5iH8AV8dSbXmEDigyyq0mA08JLMyEfAU7KTs938XHzAxcBXh5W9l85V0IMGLtq3FuGYbl3coFJRukXfHDHsDLNSw8dOXlIkRGgShV++UcQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR05MB10256 Subject: [ovs-dev] [PATCH v1 1/1] datapath-windows: Merge split dis-continuous net-buf. X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Wilson Peng via dev From: Wilson Peng Reply-To: Wilson Peng Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" From: Wilson Peng NdisGetDataBuffer() is called without providing a buffer to copy packet data in case it is not contiguous. So, it fails in some scenarios where the packet is handled by the general network stack before OVS and headers become split in multiple buffers. In the fix it will supply the stack buffer to copy packet data when call NdisGetDataBuffer(). In the conntrack Action process, it will do OvsPartialCopyNBL firstly with the size of layers l7offsets. If the header is split the header will be merged to one continuous buffer. But IPV6 traffic is not handed in this case. Reported-at: https://github.com/openvswitch/ovs-issues/issues/323 Signed-off-by: Wilson Peng --- datapath-windows/ovsext/Actions.c | 7 +++++++ datapath-windows/ovsext/BufferMgmt.c | 16 +++++++++++++--- datapath-windows/ovsext/Conntrack.c | 4 +++- datapath-windows/ovsext/IpFragment.c | 8 ++++++-- 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/datapath-windows/ovsext/Actions.c b/datapath-windows/ovsext/Actions.c index 97029b0f4..4bc2a6b65 100644 --- a/datapath-windows/ovsext/Actions.c +++ b/datapath-windows/ovsext/Actions.c @@ -2414,6 +2414,13 @@ OvsDoExecuteActions(POVS_SWITCH_CONTEXT switchContext, } PNET_BUFFER_LIST oldNbl = ovsFwdCtx.curNbl; + PUINT8 bufferStart = NULL; + + bufferStart = OvsGetHeaderBySize(&ovsFwdCtx, layers->l7Offset); + if (!bufferStart) { + dropReason = L"OVS-Netbuf reallocated failed"; + goto dropit; + } status = OvsExecuteConntrackAction(&ovsFwdCtx, key, (const PNL_ATTR)a); if (status != NDIS_STATUS_SUCCESS) { diff --git a/datapath-windows/ovsext/BufferMgmt.c b/datapath-windows/ovsext/BufferMgmt.c index 5c52757a0..40faaefd6 100644 --- a/datapath-windows/ovsext/BufferMgmt.c +++ b/datapath-windows/ovsext/BufferMgmt.c @@ -1110,12 +1110,22 @@ GetIpHeaderInfo(PNET_BUFFER_LIST curNbl, IPHdr *ipHdr; IPv6Hdr *ipv6Hdr; PNET_BUFFER curNb; + CHAR tempBuf[MAX_IPV4_HLEN]; curNb = NET_BUFFER_LIST_FIRST_NB(curNbl); ASSERT(NET_BUFFER_NEXT_NB(curNb) == NULL); - eth = (EthHdr *)NdisGetDataBuffer(curNb, - hdrInfo->l4Offset, - NULL, 1, 0); + + if (hdrInfo->isIPv6) { + eth = (EthHdr *)NdisGetDataBuffer(curNb, + hdrInfo->l4Offset, + NULL, 1, 0); + } else { + NdisZeroMemory(tempBuf, MAX_IPV4_HLEN); + eth = (EthHdr *)NdisGetDataBuffer(curNb, + hdrInfo->l4Offset, + (PVOID)tempBuf, 1, 0); + } + if (eth == NULL) { return NDIS_STATUS_INVALID_PACKET; } diff --git a/datapath-windows/ovsext/Conntrack.c b/datapath-windows/ovsext/Conntrack.c index 39ba5cc10..1a1794fc1 100644 --- a/datapath-windows/ovsext/Conntrack.c +++ b/datapath-windows/ovsext/Conntrack.c @@ -683,6 +683,7 @@ OvsGetTcpHeader(PNET_BUFFER_LIST nbl, TCPHdr *tcp; VOID *dest = storage; uint16_t ipv6ExtLength = 0; + CHAR tempBuf[MAX_IPV4_HLEN]; if (layers->isIPv6) { ipv6Hdr = NdisGetDataBuffer(NET_BUFFER_LIST_FIRST_NB(nbl), @@ -701,9 +702,10 @@ OvsGetTcpHeader(PNET_BUFFER_LIST nbl, return storage; } } else { + NdisZeroMemory(tempBuf, MAX_IPV4_HLEN); ipHdr = NdisGetDataBuffer(NET_BUFFER_LIST_FIRST_NB(nbl), layers->l4Offset + sizeof(TCPHdr), - NULL, 1 /*no align*/, 0); + (PVOID)tempBuf, 1 /*no align*/, 0); if (ipHdr == NULL) { return NULL; } diff --git a/datapath-windows/ovsext/IpFragment.c b/datapath-windows/ovsext/IpFragment.c index afb8e50d6..4e119d82a 100644 --- a/datapath-windows/ovsext/IpFragment.c +++ b/datapath-windows/ovsext/IpFragment.c @@ -153,12 +153,14 @@ OvsIpv4Reassemble(POVS_SWITCH_CONTEXT switchContext, PNET_BUFFER_LIST newNbl = NULL; UINT16 ipHdrLen, packetHeader; UINT32 packetLen; + CHAR tempBuf[MAX_IPV4_HLEN]; curNb = NET_BUFFER_LIST_FIRST_NB(*curNbl); ASSERT(NET_BUFFER_NEXT_NB(curNb) == NULL); + NdisZeroMemory(tempBuf, MAX_IPV4_HLEN); eth = (EthHdr*)NdisGetDataBuffer(curNb, layers->l4Offset, - NULL, 1, 0); + (PVOID)tempBuf, 1, 0); if (eth == NULL) { return NDIS_STATUS_INVALID_PACKET; } @@ -253,12 +255,14 @@ OvsProcessIpv4Fragment(POVS_SWITCH_CONTEXT switchContext, POVS_IPFRAG_ENTRY entry; POVS_FRAGMENT_LIST fragStorage; LOCK_STATE_EX htLockState; + CHAR tempBuf[MAX_IPV4_HLEN]; curNb = NET_BUFFER_LIST_FIRST_NB(*curNbl); ASSERT(NET_BUFFER_NEXT_NB(curNb) == NULL); + NdisZeroMemory(tempBuf, MAX_IPV4_HLEN); eth = (EthHdr*)NdisGetDataBuffer(curNb, layers->l4Offset, - NULL, 1, 0); + (PVOID)tempBuf, 1, 0); if (eth == NULL) { return NDIS_STATUS_INVALID_PACKET; }