From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 6F8B2AC172E for ; Thu, 1 Feb 2024 19:59:46 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=ee/n4YISql4Y++iQa9qmcn8Y76L+X3P8VL5vlYiP+rM=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1706817585; v=1; b=iqqiz5whPP5q9S2DGRCERgIZy/9agXuy2nGNt4i5k+gzoQWS6OFW6rSHY5SeMiI5LKdvlpkd J2alKe/wj6cA4JS3RnsxPLKI1j0gSZ7ZoN4QFr1OuroLPJyP9o00ucrK8u2iJCUW+pPuPH8aVZ8 L5p+sTxG5LgIUzptG15GcSE8= X-Received: by 127.0.0.2 with SMTP id ZDpyYY7687511xGcAUiYN8RU; Thu, 01 Feb 2024 11:59:45 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web10.5544.1706817584337140350 for ; Thu, 01 Feb 2024 11:59:44 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10971"; a="401118188" X-IronPort-AV: E=Sophos;i="6.05,236,1701158400"; d="scan'208";a="401118188" X-Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Feb 2024 11:59:43 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10971"; a="962008306" X-IronPort-AV: E=Sophos;i="6.05,236,1701158400"; d="scan'208";a="962008306" X-Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga005.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 01 Feb 2024 11:59:43 -0800 X-Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 1 Feb 2024 11:59:43 -0800 X-Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 1 Feb 2024 11:59:42 -0800 X-Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Thu, 1 Feb 2024 11:59:42 -0800 X-Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.168) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Thu, 1 Feb 2024 11:59:42 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bwhr74VsLlSjSMGapsqHeAz2seiUKBDXNaNI5DTrqcuRzxJcdy8FClyiGk7A6IsskzMQL9SuGp70NUJWxGBe3FrI3qSEqKeeC9z8d99s1TiaL5oO2lWVKA+zTt+gjpBkg/zIenOhEMu7YU7zZYO9fn6FyKur7cqkgM4AJrcKWCUDUqQ/EzaoikJEuyGqCTVyeE/uAog5Zmit4e0tBFVjl5C6CR/WR2H4hKP3dZbI8uYIWtsHtAjIf/tzpRoO+VSY9OMY1e5tTEe7s+7K05Hjg/Y5p5By1bcszuG9KHkve+hIatsDQL0FyRM/YKGLUBbZLlBIo4gu9GQlF7rXdoaQdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=kz7xJGmKyThQ6OpwgZfBkubp2QP80jzPX8hBGhxC6q8=; b=jL7c5VPYN3whgG3cMtezdnkNEMm/K58XF7Uz+i5mYYQGNj7g9k6Knq5Wtk3b9WYVA9nHhTtXE6xLhUIsBZoOCfU9RiRnNsxEMQ3sLpjphCmpU44n5YRwi5ekg3yzG+X3XGL4o2Xohn1dcPAvJYdspT0XDtxRjbLFdDFXN4uXDpvxBLTiPDijmn4hVxfLgRv/H4eSh6XctVoCm5tfrCXN9g3UbxFhyAGlFXaEUmywsDWtjAVzivDyHJZ2IbIwEBNXKsm9d3gc93U3W8lrNDq3kirBRarpLeA2UrT1xxckV6UphMwbBMOt2hseMv7i0ntp+uPQixyGD7W94QpXVFs8hg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none X-Received: from SN7PR11MB8281.namprd11.prod.outlook.com (2603:10b6:806:26b::20) by SA2PR11MB4953.namprd11.prod.outlook.com (2603:10b6:806:117::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7249.29; Thu, 1 Feb 2024 19:59:40 +0000 X-Received: from SN7PR11MB8281.namprd11.prod.outlook.com ([fe80::bf47:e473:3750:b81f]) by SN7PR11MB8281.namprd11.prod.outlook.com ([fe80::bf47:e473:3750:b81f%5]) with mapi id 15.20.7249.024; Thu, 1 Feb 2024 19:59:40 +0000 From: "Saloni Kasbekar" To: "Douglas Flick [MSFT]" , "devel@edk2.groups.io" CC: Doug Flick , "Clark-williams, Zachary" Subject: Re: [edk2-devel] [PATCH v2 07/15] NetworkPkg: Ip6Dxe: SECURITY PATCH CVE-2023-45231 Unit Tests Thread-Topic: [PATCH v2 07/15] NetworkPkg: Ip6Dxe: SECURITY PATCH CVE-2023-45231 Unit Tests Thread-Index: AQHaT+MrnZMfmSogz0yqsp7vbhq5tLD18JmA Date: Thu, 1 Feb 2024 19:59:40 +0000 Message-ID: References: <0e584109537f3cea0b6393d598a69c61dc6912a5.1706219324.git.doug.edk2@gmail.com> In-Reply-To: <0e584109537f3cea0b6393d598a69c61dc6912a5.1706219324.git.doug.edk2@gmail.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN7PR11MB8281:EE_|SA2PR11MB4953:EE_ x-ms-office365-filtering-correlation-id: 8b04bb64-09c2-4f79-a8d8-08dc23605369 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: Nlxbto4VoZrOy5LMnJFjco9NYGfCDMocPBJOcL469hvzVRWAj/3Ob5Z/5QURoR+sEMD6Hcr36D900LMd7/Cn32hrksCZgX+fWXL0szBsvOWtUuEDgyJceHSM1CnQw+1JSVXvFaRjhkVq7hxf+cHCNw0a5xtZGqyNg6wHwJ+cOvjvTGOwpULN76Xo37Wpl/mYZrK8xVxAdiMZynm1dkCO3zp5eL+fS+I0Zl4qDOIRibTb3QwtIftH46Z5krtRLxipO3uwj3liCOsLh97LYWVLYXTz3WWO+FMFGFF5JmIEvHUKFmwh6BNCoUYkpdaIZw3Hr+Gv1TsKZhOXYJF80tyD2CcJwwhlvJTP5BcFJeVeuvznwoJEVGPB4nYEQWKJw1hmBV1OUr4LrIE8VPmRNNQaiblUpt8/5gKK014vBtCbwQUeK0keZo/y0nhlwwpEgOtPvHI6JvhJO9JjyLmUuKnKvcAssNkRVFC9S+oYLBcVqNmNWDsxpPkpoisU5D+yzh1yREa50L6HTkDulNgmr3xm4B4eQKKzUUe0ZnWlq2wzWny1Q6llxvcyGVG6NlNwpj4yE6Wsztpq5IBsUJPeqAGaSSf6pouob4YCb6QIBjdvW1CjuVKNCIRlcfKsCsFkgb8v x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?ORhWi/eEEaMPLJYpm2wXEhOMD0JWQV3AgmdAThltdgqa0wTnf/7a71xyU5AB?= =?us-ascii?Q?2YMFSodQMpDAHX1lvblhst5zYtkVGaxHzUIBQV3lC8+uSKX91zjQ3zpVk90s?= =?us-ascii?Q?qINR/vOj82A7LGz0DESH3CWqviz7RbXS6cO1beLX+Ue95w7Wvh8Qv+X6Jli8?= =?us-ascii?Q?dJftGfRSvlZYPDFWmySrOCqozQNxHClyUxDbn3BW035ixzKDpTjLT3YbWL0L?= =?us-ascii?Q?Pau/zp0rMqw/cdpljHpHnfAsNS47ryHAAg77kXqNGKsGjhnmDfr+n4GdYoBp?= =?us-ascii?Q?BsGH5ciq0onasUMzpLi+iJXVmEizcXNlXNbWa1fQ6IFJqTCkGDtw6rqorsZs?= =?us-ascii?Q?W1u9wie/n0nY/0qwaIy/njUcjDPvywYcxcpZtHkISiSJgGaN9mR5QSwjGcfz?= =?us-ascii?Q?axh7Z5q/Oe5j+gNP607WAH8PbqP3vouCHXpi+kkx8EVb2IUTU7DvpajwVriP?= =?us-ascii?Q?aVTdW8SySgm3yVIw0ShftWadeQqFHqJIM+13ORRdlzSnYVcGtM/iOm01fSx8?= =?us-ascii?Q?UDPVJ/IUfZ3Uvmx6V462HxJAYJOPAWJrzFzY92tGvOYoq0GmWMo/bny9/Pvw?= =?us-ascii?Q?L3CySgJCJt3RBUD/y30u3oL4K1XiNTtL7JM7+pyXQRnbJNMIhc5ITpHY33yz?= =?us-ascii?Q?h0zp3uEnmghZvwgx7ZSI5Sw3Iur9fCxwaN2SO0M2VYcGLHgB3ZU4AK1Cky7J?= =?us-ascii?Q?S0j4sbb7ekP4Qws0XfKXSx3U94PwbRVG2plTPDCizSbf6eEBkB4r5a2Zjb+w?= =?us-ascii?Q?s/IWzWQeyZ//2EZSnLXVdaxP4/Z1zHWMeZyWwRAtQhx5+bTm+str/6AMjOCQ?= =?us-ascii?Q?hyhbKnaq5vOs72SwbLWgPyuAKUAKBFXvR828f8E7TjvnZrryClP1Mp8PM5jY?= =?us-ascii?Q?Fi8nJkT+qs1bK+CpZ7yCpcOwl+XB5ajv01Z9GKuezUYkvKly71zAibCJ4w3Q?= =?us-ascii?Q?8ZbDe9Q/E+ebDCYVtTgGuBa4SfgFUZR+KBFvszTNFuG2vil5GGSnFT54aRsK?= =?us-ascii?Q?z72Pt1htPJnjRJHwbeCNFj9Y/uKc7KjJ7aWwWv0H9Y2Yezf8bKquH+DIKRib?= =?us-ascii?Q?x8+YNQ3w7Bb+v+lU0k75KvSIPtD+is51FzC7/MBf7oA0vWQLYXb/ALps1nO2?= =?us-ascii?Q?DKVUOATkVlX6JMdt3Rmn/vUge8QStBPF6gD8aeCx5t0xbzgM2Q8N0hQtU+oN?= =?us-ascii?Q?up3VcLjsKnW//+GcSxqwgGg0sBXvQqAerOKt2nrYxyR0DbQnLO6jBlHV0FNs?= =?us-ascii?Q?QQ7tQI0sdIBd4ZRHdd2foUlpP6pIB22wTpSiOojpsnJp6Ai81JM/ug5j7R1h?= =?us-ascii?Q?P2PQbc2ivjUKHzOfLKd+mmwCXzBX2zg5RIhXLpCfacM/JXw9BCC3SiMCGuEt?= =?us-ascii?Q?9BzbCYNPPfgvo5L0BgUOJ2KsXYsD5t5b/quB1rNiMCGYm9UA7A8BCt2GuzYW?= =?us-ascii?Q?Gw9dWEHH8mqfU70pIDJQ5lwwpmIDaFwrWnifCNiBTzD4EZhk0n9jXaUqpJhU?= =?us-ascii?Q?Kpo8DrIywAAO+ZwHqfGiylpTDXWbpT/32WjoWmNze1l5lzQd1UzwTxez1isM?= =?us-ascii?Q?XgXixRgFL0FvgMlfsJC/xEStttAa7nUjlM76/ion?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN7PR11MB8281.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8b04bb64-09c2-4f79-a8d8-08dc23605369 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Feb 2024 19:59:40.2946 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: LTJKnbm4i6mVbuMZye4Gh3tQRmJeYJqC1E+McHib+SoMW46cUfvMiS/TBIqY+SRbXQpBpR4EtJ7y1eAYUCY/fDMe955vCXMKeSZTlaQpV9c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR11MB4953 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,saloni.kasbekar@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: pJiAUXGvM3Mdkweu5XbCK1ZXx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=iqqiz5wh; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io Reviewed-by: Saloni Kasbekar -----Original Message----- From: Douglas Flick [MSFT] =20 Sent: Thursday, January 25, 2024 1:55 PM To: devel@edk2.groups.io Cc: Doug Flick ; Kasbekar, Saloni ; Clark-williams, Zachary ; Do= ug Flick [MSFT] Subject: [PATCH v2 07/15] NetworkPkg: Ip6Dxe: SECURITY PATCH CVE-2023-45231= Unit Tests From: Doug Flick REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D4536 Validates that the patch for... Out-of-bounds read when handling a ND Redirect message with truncated optio= ns .. has been fixed Tests the following function to ensure that an out of bounds read does not = occur Ip6OptionValidation Cc: Saloni Kasbekar Cc: Zachary Clark-williams Signed-off-by: Doug Flick [MSFT] --- NetworkPkg/Test/NetworkPkgHostTest.dsc | 1 + .../Ip6Dxe/GoogleTest/Ip6DxeGoogleTest.inf | 42 ++++++ .../Ip6Dxe/GoogleTest/Ip6DxeGoogleTest.cpp | 20 +++ .../Ip6Dxe/GoogleTest/Ip6OptionGoogleTest.cpp | 129 ++++++++++++++++++ 4 files changed, 192 insertions(+) create mode 100644 NetworkPkg/Ip6Dxe/GoogleTest/Ip6DxeGoogleTest.inf create mode 100644 NetworkPkg/Ip6Dxe/GoogleTest/Ip6DxeGoogleTest.cpp create mode 100644 NetworkPkg/Ip6Dxe/GoogleTest/Ip6OptionGoogleTest.cpp diff --git a/NetworkPkg/Test/NetworkPkgHostTest.dsc b/NetworkPkg/Test/Netwo= rkPkgHostTest.dsc index 24dee654df2e..7fa7b0f9d5be 100644 --- a/NetworkPkg/Test/NetworkPkgHostTest.dsc +++ b/NetworkPkg/Test/NetworkPkgHostTest.dsc @@ -26,6 +26,7 @@ [Components] # Build HOST_APPLICATION that tests NetworkPkg # NetworkPkg/Dhcp6Dxe= /GoogleTest/Dhcp6DxeGoogleTest.inf+ NetworkPkg/Ip6Dxe/GoogleTest/Ip6DxeGoo= gleTest.inf # Despite these library classes being listed in [LibraryClasse= s] below, they are not needed for the host-based unit tests. [LibraryClasse= s]diff --git a/NetworkPkg/Ip6Dxe/GoogleTest/Ip6DxeGoogleTest.inf b/NetworkP= kg/Ip6Dxe/GoogleTest/Ip6DxeGoogleTest.inf new file mode 100644 index 000000000000..6e4de0745fb5 --- /dev/null +++ b/NetworkPkg/Ip6Dxe/GoogleTest/Ip6DxeGoogleTest.inf @@ -0,0 +1,42 @@ +## @file+# Unit test suite for the Ip6Dxe using Google Test+#+# Copyright = (c) Microsoft Corporation.
+# SPDX-License-Identifier: BSD-2-Clause-Pate= nt+##+[Defines]+ INF_VERSION =3D 0x00010017+ BASE_NAME = =3D Ip6DxeUnitTest+ FILE_GUID =3D 4F05D17D-D3E7-4AAE-820C-576D46= D2D34A+ VERSION_STRING =3D 1.0+ MODULE_TYPE =3D HOST_APPLICA= TION+#+# The following information is for reference only and not required b= y the build tools.+#+# VALID_ARCHITECTURES =3D IA32 X64 AARCH64+= #+[Sources]+ Ip6DxeGoogleTest.cpp+ Ip6OptionGoogleTest.cpp+ ../Ip6Option= .c++[Packages]+ MdePkg/MdePkg.dec+ MdeModulePkg/MdeModulePkg.dec+ UnitTe= stFrameworkPkg/UnitTestFrameworkPkg.dec+ NetworkPkg/NetworkPkg.dec++[Libra= ryClasses]+ GoogleTestLib+ DebugLib+ NetLib+ PcdLib++[Protocols]+ gEfi= Dhcp6ServiceBindingProtocolGuid++[Pcd]+ gEfiNetworkPkgTokenSpaceGuid.PcdDh= cp6UidType++[Guids]+ gZeroGuiddiff --git a/NetworkPkg/Ip6Dxe/GoogleTest/Ip= 6DxeGoogleTest.cpp b/NetworkPkg/Ip6Dxe/GoogleTest/Ip6DxeGoogleTest.cpp new file mode 100644 index 000000000000..6ebfd5fdfb70 --- /dev/null +++ b/NetworkPkg/Ip6Dxe/GoogleTest/Ip6DxeGoogleTest.cpp @@ -0,0 +1,20 @@ +/** @file+ Acts as the main entry point for the tests for the Ip6Dxe modu= le.++ Copyright (c) Microsoft Corporation+ SPDX-License-Identifier: BSD-2= -Clause-Patent+**/+#include ++//////////////////////////////= //////////////////////////////////////////////////+// Run the tests+///////= /////////////////////////////////////////////////////////////////////////+i= nt+main (+ int argc,+ char *argv[]+ )+{+ testing::InitGoogleTest (&a= rgc, argv);+ return RUN_ALL_TESTS ();+}diff --git a/NetworkPkg/Ip6Dxe/Goog= leTest/Ip6OptionGoogleTest.cpp b/NetworkPkg/Ip6Dxe/GoogleTest/Ip6OptionGoog= leTest.cpp new file mode 100644 index 000000000000..f2cd90e1a952 --- /dev/null +++ b/NetworkPkg/Ip6Dxe/GoogleTest/Ip6OptionGoogleTest.cpp @@ -0,0 +1,129 @@ +/** @file+ Tests for Ip6Option.c.++ Copyright (c) Microsoft Corporation+= SPDX-License-Identifier: BSD-2-Clause-Patent+**/+#include = ++extern "C" {+ #include + #include + #includ= e + #include "../Ip6Impl.h"+ #include "../Ip6Option.h= "+}++//////////////////////////////////////////////////////////////////////= ///+// Defines+////////////////////////////////////////////////////////////= ///////////++#define IP6_PREFIX_INFO_OPTION_DATA_LEN 32+#define OPTION_H= EADER_IP6_PREFIX_DATA_LEN (sizeof (IP6_OPTION_HEADER) + IP6_PREFIX_INFO_OP= TION_DATA_LEN)++///////////////////////////////////////////////////////////= /////////////+// Symbol Definitions+// These functions are not directly und= er test - but required to compile+/////////////////////////////////////////= ///////////////////////////////+UINT32 mIp6Id;++EFI_STATUS+Ip6SendIcmpErro= r (+ IN IP6_SERVICE *IpSb,+ IN NET_BUF *Packet,+ IN EFI_= IPv6_ADDRESS *SourceAddress OPTIONAL,+ IN EFI_IPv6_ADDRESS *Destin= ationAddress,+ IN UINT8 Type,+ IN UINT8 Code,+ I= N UINT32 *Pointer OPTIONAL+ )+{+ // ..+ return EF= I_SUCCESS;+}++/////////////////////////////////////////////////////////////= ///////////+// Ip6OptionValidation Tests+//////////////////////////////////= //////////////////////////////////////++// Define a fixture for your tests = if needed+class Ip6OptionValidationTest : public ::testing::Test {+protecte= d:+ // Add any setup code if needed+ virtual void+ SetUp (+ )+ {+ = // Initialize any resources or variables+ }++ // Add any cleanup code if= needed+ virtual void+ TearDown (+ )+ {+ // Clean up any resources= or variables+ }+};++// Test Description:+// Null option should return fal= se+TEST_F (Ip6OptionValidationTest, NullOptionShouldReturnFalse) {+ UINT8 = *option =3D nullptr;+ UINT16 optionLen =3D 10; // Provide a suitable = length++ EXPECT_FALSE (Ip6IsNDOptionValid (option, optionLen));+}++// Test= Description:+// Truncated option should return false+TEST_F (Ip6OptionVali= dationTest, TruncatedOptionShouldReturnFalse) {+ UINT8 option[] =3D { 0= x01 }; // Provide a truncated option+ UINT16 optionLen =3D 1;++ EXPECT_F= ALSE (Ip6IsNDOptionValid (option, optionLen));+}++// Test Description:+// I= p6OptionPrefixInfo Option with zero length should return false+TEST_F (Ip6O= ptionValidationTest, OptionWithZeroLengthShouldReturnFalse) {+ IP6_OPTION_= HEADER optionHeader;++ optionHeader.Type =3D Ip6OptionPrefixInfo;+ opt= ionHeader.Length =3D 0;+ UINT8 option[sizeof (IP6_OPTION_HEADER)];++ Cop= yMem (option, &optionHeader, sizeof (IP6_OPTION_HEADER));+ UINT16 optionL= en =3D sizeof (IP6_OPTION_HEADER);++ EXPECT_FALSE (Ip6IsNDOptionValid (opt= ion, optionLen));+}++// Test Description:+// Ip6OptionPrefixInfo Option wit= h valid length should return true+TEST_F (Ip6OptionValidationTest, ValidPre= fixInfoOptionShouldReturnTrue) {+ IP6_OPTION_HEADER optionHeader;++ opti= onHeader.Type =3D Ip6OptionPrefixInfo;+ optionHeader.Length =3D 4; // Le= ngth 4 * 8 =3D 32+ UINT8 option[OPTION_HEADER_IP6_PREFIX_DATA_LEN];++ Co= pyMem (option, &optionHeader, sizeof (IP6_OPTION_HEADER));++ EXPECT_TRUE (= Ip6IsNDOptionValid (option, IP6_PREFIX_INFO_OPTION_DATA_LEN));+}++// Test D= escription:+// Ip6OptionPrefixInfo Option with invalid length should return= false+TEST_F (Ip6OptionValidationTest, InvalidPrefixInfoOptionLengthShould= ReturnFalse) {+ IP6_OPTION_HEADER optionHeader;++ optionHeader.Type = =3D Ip6OptionPrefixInfo;+ optionHeader.Length =3D 3; // Length 3 * 8 =3D 2= 4 (Invalid)+ UINT8 option[sizeof (IP6_OPTION_HEADER)];++ CopyMem (option= , &optionHeader, sizeof (IP6_OPTION_HEADER));+ UINT16 optionLen =3D sizeo= f (IP6_OPTION_HEADER);++ EXPECT_FALSE (Ip6IsNDOptionValid (option, optionL= en));+}--=20 2.43.0 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#114960): https://edk2.groups.io/g/devel/message/114960 Mute This Topic: https://groups.io/mt/103964982/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-