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 75437740045 for ; Mon, 27 Nov 2023 05:31:49 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=UlGBBQMf9i1Dflq3/+dV2uxe0U4aEikTTdm4TRMO1Mg=; 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=1701063108; v=1; b=lfj33q9nKqxWwloOaR4gQ5ZGhvaJZQGCe8USi6VHrIXNf0kENI3+9fHKJ6wFfyNaTPhQoSHP tADE5yiAxP7JOwFJ7BNgdvXt6ySFJWIdo0/Q1W0ebevEqVKtezkyMhcsHvyh3xGRwoMPMqrmynC eh5h89DrCraKYyMjEyoZwhSk= X-Received: by 127.0.0.2 with SMTP id IkFCYY7687511x99j0M369tX; Sun, 26 Nov 2023 21:31:48 -0800 X-Received: from NAM04-MW2-obe.outbound.protection.outlook.com (NAM04-MW2-obe.outbound.protection.outlook.com [40.107.101.82]) by mx.groups.io with SMTP id smtpd.web10.87211.1701063107658882257 for ; Sun, 26 Nov 2023 21:31:47 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oTIh5ecW0JpMi8PlPQeBWldNjlGMsWQEEZ4p2jmUPNvZpQb84hGrgL9Lc/ZrbxfVmCB/MVdKNTxG49gAgf2CyaaOXmyfltL/UwUxhPA1AvIFHthpysIQsL1Y4pBypd8rC1WtGfDc/od0+ondOuhWFuNyCmo9uLZWiJEJdivEfke/MV9KZHgLDIBIXOfxb944S8rp4Ken9QPC5/4Tj6/7GC0byeb1LCukbFJdcL2qvDz+LUxq2v8CgCBIfBy+0TUlw9ZAsF+VCQw5kY47ZVKZUsJh+1ufDCaen7bOzBG9T3ocOrp+EUJqDOAhJYiHfw0O5YghxsQjdJ/8xa0IRrlsjQ== 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=GJsI00It9p+rbc2PIutkepAtHva+BqUCsueTaGOMZsbQ6f7SWHU/H4X81609dLAlrQZ1ao/UbuOX+LpWTbDqqS+xNkzxR5LK0FTvBMzSCLizJ3UfdWfws8F/66hDGOaQi0Ux1eke6ofZTIJPWg5NP0rH5zNp7IKSf1+gbt07OahCOaT29QpemuvaKlOnhM0JlbCV7WAe76Zm4J3bbvORYAYe4jzYxfi7wjZcSvDtyVPDJpdlm9UiISyrwlbblgX8vVN2EdR/yiA7T/M7IONwN2PRn6xAGCIyK6hVsS4EmBLB7jkBWgRHfDOUfYQHik2/9gqP5WPIocy/y3nZ+MqrPQ== 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 SA0PR11CA0091.namprd11.prod.outlook.com (2603:10b6:806:d1::6) by SJ0PR12MB5486.namprd12.prod.outlook.com (2603:10b6:a03:3bb::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.27; Mon, 27 Nov 2023 05:31:43 +0000 X-Received: from SN1PEPF0002BA52.namprd03.prod.outlook.com (2603:10b6:806:d1:cafe::83) by SA0PR11CA0091.outlook.office365.com (2603:10b6:806:d1::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.27 via Frontend Transport; Mon, 27 Nov 2023 05:31:43 +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 SN1PEPF0002BA52.mail.protection.outlook.com (10.167.242.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7046.17 via Frontend Transport; Mon, 27 Nov 2023 05:31:43 +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; Sun, 26 Nov 2023 23:31:36 -0600 From: "Chang, Abner via groups.io" To: CC: Nickle Wang , Igor Kulchytskyy , Mike Maslenkin Subject: [edk2-devel] [PATCH V3 6/9] RedfishPkg/RedfishDiscovery: Refine SMBIOS 42h code Date: Mon, 27 Nov 2023 13:31:04 +0800 Message-ID: <20231127053107.1686-7-abner.chang@amd.com> In-Reply-To: <20231127053107.1686-1-abner.chang@amd.com> References: <20231127053107.1686-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: SN1PEPF0002BA52:EE_|SJ0PR12MB5486:EE_ X-MS-Office365-Filtering-Correlation-Id: 470db94f-d657-4d4f-0c77-08dbef0a23f8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: m6PgSnBdDMviz+V1DsVugOtvCxArD8kJXJC9pQIcFzAGasvUie1j+OjqG92N8lQIwXeOvdUAvC1fOZ1h8a2dMgv9wsw2TnJ9mZKcRnZJ3y8O/LASe6+hinsvgldUPW2flZ4dtsGMg+UBLJY3KyTrxztSLPQcQqe7+LNkg5w50xBbOCPGoTJmk6YtoNHfGIB7ldJMfNmJjdGHD4URI7SvdWTy9QD+4byw65AWiq0eaKEXQ487dFJDGCjyOlG3GxZLhKUKSFguFrdLWM/siReGWvTxjXeYdenlOqoCbGM7y/P9Heej4R0uMiLBo6uLtpeKiEFJ+HMfvzkdtS49ZJZXudIVxHKzNsTwP9LXPNzK2nf75sXUWyuq49kJ3s09exTsm69b2PBYPiCHk+UKpV6vZJnvcGaiMxy3rZrhkkinXMk3NQ0dhKjSY96NT0rJe9qep8GZpckpG+s3J95LRUN/M51uglssmfLBrWhOXmaPifB29fpyQscIYS2XauSQnTXZcCBDFQFiqT7ge4ScGQiyxcd5JPVCwqVxHX0bLmwruvR6Oro6ZyL7saDH81+9HCpdEsYhcL17LS3LPRtb6Zvg3DxcHTqo3VP9FsKxPYyG5sjpZUHU0jldHNOHAtsMjmgVqcXraUxQ01GteCnKs1l+5gGqcu/vc7OVfPK9CwWUDNjeMIxQRb8/NhfD8++pm2x4+HxZ9lLdfyuSgtj2IbJbOth3iYpKbagAnIBl7ppy/3zeEL4ksl0Ht2BzJv12JyNFjVQF8GX6cD5aW6OadCPENCioaq9eE+rwfYXFemVY9As= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2023 05:31:43.4602 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 470db94f-d657-4d4f-0c77-08dbef0a23f8 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: SN1PEPF0002BA52.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB5486 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: U9HdZZqTRZAxHkmBDJMTI7hyx7686176AA= 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=lfj33q9n; 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; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") 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 (#111723): https://edk2.groups.io/g/devel/message/111723 Mute This Topic: https://groups.io/mt/102824323/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-