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 98346941126 for ; Thu, 23 Nov 2023 05:55:30 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=32ydP5JrIc29K3RgCoYidtOez+kw7Az/Jhgk52hYXt4=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:Received-SPF:From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20140610; t=1700718929; v=1; b=Hj1Q1qQey3ZEZNWVBZ9mUr3MFA4gorjeT2X1n33yJU63QTSNrmnIp0RdHV0mPqmnCuGQ4W2H tfro8wYPBji0RMwcztBU80sbh69sbgytg3yFCBfCxfLv9EYrmXYfHVQCCOrKxvMEwD2249U+f0v x2hdGN/adoWb0pStnxWr+Z5s= X-Received: by 127.0.0.2 with SMTP id 4V4OYY7687511xCWtDjBSEHy; Wed, 22 Nov 2023 21:55:29 -0800 X-Received: from NAM11-DM6-obe.outbound.protection.outlook.com (NAM11-DM6-obe.outbound.protection.outlook.com [40.107.223.72]) by mx.groups.io with SMTP id smtpd.web10.85477.1700718928728524494 for ; Wed, 22 Nov 2023 21:55:28 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YYQt7Aicw+BdjabRkqtuOcl4qlfA3aEI7AAnBcOtqlMiiXFbl+ljU50xJ9d1MeXTfW8TLUllqdBxGB9w71sC6qHofVE+kckW9IChcAZ3wdJIzhrYVSH69kCEHSHNe67t2IoxLxCBs3eio/f29DgKvuJ0SXxV1pAC304WLdiiGxR3SwgXNVLepQI5Nx2V2hOAJ+AbBOyHm8/q/zyQH397stqxLu61BH986fsxpjbXON53dJ0DuXJlK5dOAEVMaksQUlML5jHAJEeFth2ilUR6JcBWe8kgKAy81ENKukgkMr/cpDIskcIR+x8+mmltrJ6uY1rF4mMkQrIHHlvrPtEt3Q== 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=+RBfbNXnAX9ZF54r68/ys7DVXUHO72MsJoh15v2+Mi0=; b=CWRyvg+hnTWN6k5Zt26T72ZmnlHPe9pAZWUQHJ1jgrOaeBJMh3RaT6uARdoK/KZYm6TE5A+GRTwpWj5vugAWVw1hsDd8PAK4XXIEhzVmsclQ+ds1C4GVFXjW5qFqeDLUg96YVM2mBQ8vmUAjyWVHnqFRh3HOcAe1pesxSLyG6QCUq7h5kY+kFeseg8Q4+PSwxtabpepBZ81vlZ3gE9R1Lg5G/ACG+4uIDRN3qXElyZ/xePGzorrZxxedsw+Y6Hp2cLXUUUJY8iMCZh1+8h3KNpVPrO+MDvxLDpsBfmtm+23Zhgqg2FGEwkhoqUW5o94PX/ehyrbrJpajSCB9FUbr4Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) X-Received: from DS7PR03CA0074.namprd03.prod.outlook.com (2603:10b6:5:3bb::19) by SA1PR12MB6946.namprd12.prod.outlook.com (2603:10b6:806:24d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.19; Thu, 23 Nov 2023 05:55:26 +0000 X-Received: from CY4PEPF0000E9D5.namprd05.prod.outlook.com (2603:10b6:5:3bb:cafe::91) by DS7PR03CA0074.outlook.office365.com (2603:10b6:5:3bb::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.20 via Frontend Transport; Thu, 23 Nov 2023 05:55:26 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C X-Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000E9D5.mail.protection.outlook.com (10.167.241.76) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7025.12 via Frontend Transport; Thu, 23 Nov 2023 05:55:25 +0000 X-Received: from TPE-L1-ABNCHANG.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Wed, 22 Nov 2023 23:55:20 -0600 From: "Chang, Abner via groups.io" To: CC: Nickle Wang , Igor Kulchytskyy , Mike Maslenkin Subject: [edk2-devel] [PATCH 6/6] RedfishPkg/RedfishDiscovery: Refine SMBIOS 42h code Date: Thu, 23 Nov 2023 13:54:32 +0800 Message-ID: <20231123055432.86-7-abner.chang@amd.com> In-Reply-To: <20231123055432.86-1-abner.chang@amd.com> References: <20231123055432.86-1-abner.chang@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D5:EE_|SA1PR12MB6946:EE_ X-MS-Office365-Filtering-Correlation-Id: 3d258154-3ad1-43fe-1ae6-08dbebe8ca23 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: NmSqwOwnUBN2Xkb0LGqJbxflZEF19bhN0zuxxGDhaPadcrrlz5/LDm9BpliSqObBIFvkHCsgYlTOC+gGzg51mm+XK+lo5gBH5XZe//9Zgk14xaU9jVE1Ed3NasjcuJnOxbpkM1JdQuXihmQNVd0NRAdlVjQyjOHJuSk9aSBvAaRCDD2egApcru6dv81HhDaYIsesUHW6l3vR9/qS8K71XeSTSa8xa7X6dMFD4g3STdkhZZqiJM43j1JYbEkz0vJDh4wCoysfSS0/LGyuFByP4kFeZ02xJ62QGGO0asaMr0D8qlQYNQLnMxbMaV14om7e+qDDQph7PhQ7tRJdkl8XzoPS974yJcHgpIvbR4jBiFoO1fk1b60m7MSoWwOz3JXsj4kKCVv+4Lc1V5Et6R7iCGnhZ0r+yuSwxTs5NMgEcuoevzMJqL6nUyqq6p59f/s3U5wvuTxDvAxcuyVmnBBjLs2R8PEpwEIkcbuWg8SihvLkEK70jn9YUQUwG6ZB21YSeNqtPXHVFuDLscWaqIUuVjBOylaRUjQu4QiSTVKWw0uFvYJMHh/sMl9Q4z4iEQGsy/MgSsr8tNY28G9pe+BmkHav9MJP6oDOTCyf7IOYXhOckCrZC8IDCHL/s20LD4+e9fo75zSWHX9Ys5PESJOH54/P/+3PV3zNtCXUSS3/EEzWyAQT8N4kWpEfnGTeAeCbWxznLPrD1PDyZMz7sGrmkP/VPyTNLCMNj9g2IWRVjfLBlErUFg+ZhgtjapKg8hka3n2DhRxJWHfGFGWHrzulhmGzFq9eq6K41SzuFkUkW/o= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2023 05:55:25.8045 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3d258154-3ad1-43fe-1ae6-08dbebe8ca23 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000E9D5.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6946 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,abner.chang@amd.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: 9iQ5JCYW7pv70OBNSledUHTUx7686176AA= Content-Transfer-Encoding: quoted-printable Content-Type: text/plain X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=Hj1Q1qQe; dmarc=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 From: Abner Chang Refine SMBIOS 42h code add mode debug message for the error conditions. Signed-off-by: Abner Chang Cc: Nickle Wang Cc: Igor Kulchytskyy Cc: Mike Maslenkin --- .../RedfishDiscoverInternal.h | 2 ++ .../RedfishSmbiosHostInterface.c | 20 +++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverInternal.h b/Redf= ishPkg/RedfishDiscoverDxe/RedfishDiscoverInternal.h index e27cfa76e39..de7faa4f975 100644 --- a/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverInternal.h +++ b/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverInternal.h @@ -42,6 +42,8 @@ #define MAC_COMPARE(This, Target) (CompareMem ((VOID *)&(This)->MacAddres= s, &(Target)->MacAddress, (This)->HwAddressSize) =3D=3D 0) #define VALID_TCP6(Target, This) ((Target)->IsIpv6 && ((This)->NetworkPr= otocolType =3D=3D ProtocolTypeTcp6)) #define VALID_TCP4(Target, This) (!(Target)->IsIpv6 && ((This)->NetworkP= rotocolType =3D=3D ProtocolTypeTcp4)) +#define REDFISH_HI_ITERFACE_SPECIFIC_DATA_LENGTH_OFFSET ((UINT16)(UINTN)(= &((SMBIOS_TABLE_TYPE42 *)0)->InterfaceTypeSpecificDataLength)) +#define REDFISH_HI_PROTOCOL_HOSTNAME_LENGTH_OFFSET ((UINT16)(UINTN)(= &((REDFISH_OVER_IP_PROTOCOL_DATA *)0)->RedfishServiceHostnameLength)) =20 // // GUID definitions diff --git a/RedfishPkg/RedfishDiscoverDxe/RedfishSmbiosHostInterface.c b/R= edfishPkg/RedfishDiscoverDxe/RedfishSmbiosHostInterface.c index 0d6edc7dc35..57665f367be 100644 --- a/RedfishPkg/RedfishDiscoverDxe/RedfishSmbiosHostInterface.c +++ b/RedfishPkg/RedfishDiscoverDxe/RedfishSmbiosHostInterface.c @@ -56,7 +56,7 @@ RedfishGetHostInterfaceProtocolData ( mType42Record =3D (SMBIOS_TABLE_TYPE42 *)Record; if (mType42Record->InterfaceType =3D=3D MCHostInterfaceTypeNetworkHo= stInterface) { ASSERT (Record->Length >=3D 9); - Offset =3D 5; + Offset =3D REDFISH_HI_ITERFACE_SPECIFIC_DATA_LENGTH_OFFSET; RecordTmp =3D (UINT8 *)Record + Offset; // // Get interface specific data length. @@ -70,11 +70,13 @@ RedfishGetHostInterfaceProtocolData ( // if ((*RecordTmp =3D=3D REDFISH_HOST_INTERFACE_DEVICE_TYPE_PCI_PCIE= _V2) || (*RecordTmp =3D=3D REDFISH_HOST_INTERFACE_DEVICE_TYPE_USB_V2)) { if (*RecordTmp =3D=3D REDFISH_HOST_INTERFACE_DEVICE_TYPE_PCI_PCI= E_V2) { + // According to Redfish Host Interface specification, add addi= tional one byte for Device Type field. if (SpecificDataLen !=3D sizeof (PCI_OR_PCIE_INTERFACE_DEVICE_= DESCRIPTOR_V2) + 1) { ASSERT (SpecificDataLen =3D=3D sizeof (PCI_OR_PCIE_INTERFACE= _DEVICE_DESCRIPTOR_V2) + 1); return EFI_VOLUME_CORRUPTED; } } else { + // According to Redfish Host Interface specification, add addi= tional one byte for Device Type field. if (SpecificDataLen !=3D sizeof (USB_INTERFACE_DEVICE_DESCRIPT= OR_V2) + 1) { ASSERT (SpecificDataLen =3D=3D sizeof (USB_INTERFACE_DEVICE_= DESCRIPTOR_V2) + 1); return EFI_VOLUME_CORRUPTED; @@ -105,7 +107,14 @@ RedfishGetHostInterfaceProtocolData ( // This SMBIOS record is invalid, if the length of protocol sp= ecific data for // Redfish Over IP protocol is wrong. // - if ((*(RecordTmp + 90) + sizeof (REDFISH_OVER_IP_PROTOCOL_DATA= ) - 1) !=3D ProtocolLength) { + if ((*(RecordTmp + REDFISH_HI_PROTOCOL_HOSTNAME_LENGTH_OFFSET)= + sizeof (REDFISH_OVER_IP_PROTOCOL_DATA) - 1) !=3D ProtocolLength) { + DEBUG (( + DEBUG_ERROR, + "%a: Length of protocol specific data is not match: %d != =3D ProtocolLength(%d).\n", + __func__, + *(RecordTmp + REDFISH_HI_PROTOCOL_HOSTNAME_LENGTH_OFFSET) = + sizeof (REDFISH_OVER_IP_PROTOCOL_DATA) - 1, + ProtocolLength + )); return EFI_SECURITY_VIOLATION; } =20 @@ -114,6 +123,13 @@ RedfishGetHostInterfaceProtocolData ( // This SMBIOS record is invalid, if the length is smaller tha= n the offset. // if (Offset > mType42Record->Hdr.Length) { + DEBUG (( + DEBUG_ERROR, + "%a: Offset (%d) > mType42Record->Hdr.Length (%d).\n", + __func__, + Offset, + mType42Record->Hdr.Length + )); return EFI_SECURITY_VIOLATION; } =20 --=20 2.37.1.windows.1 -=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 (#111654): https://edk2.groups.io/g/devel/message/111654 Mute This Topic: https://groups.io/mt/102762747/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-