From nobody Thu May 16 14:08:18 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+108942+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 169530100707938.563227461307974; Thu, 21 Sep 2023 05:56:47 -0700 (PDT) Return-Path: DKIM-Signature: a=rsa-sha256; bh=rhZ6wg46jYd/ClAbnryIF+Y1vdUQ1OsrgynWvAhnHyg=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:Received-SPF:From:To:CC:Subject:Date:Message-ID: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=1695301006; v=1; b=DaMn+VVde/kTWpWuSffZn2emF9F70RS6FyZcPfGq4864sfnNgxr2SGCajOimuYE1SNq/7CAq Niofh7Z3f2vxGmoiX9GHTKRhT4aa2jyDUHddt41u/1XAHLQP1mme3Uf1YWzyVRn0NRZDtUTy6T6 73vdrX5AGCagOzpgpDdBTzus= X-Received: by 127.0.0.2 with SMTP id tjwFYY1788612xgf2rGj1ZAB; Thu, 21 Sep 2023 05:56:46 -0700 X-Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.84]) by mx.groups.io with SMTP id smtpd.web10.16132.1695301006120292859 for ; Thu, 21 Sep 2023 05:56:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JQjbHLTmzE9twz7Fc0h+jtUH5g6RpVSdIdhFjlTqkUf0pngfp6UtLC/ljMalJuDA0jbJZw+bVNUVzihVE4eRvtlZgnJeO5n+NPLwrMVYjv0ulUgHrHS5UjKbq7BrnLOkDDqKaR+dawVYhY8OfNuTZLBUcvkf/57Shvyhj27xOrUzJF1FHNoRNXjyodPUk3qp8gtvY8mla6Fdr1nJ1K4T+l5jDKRRzhUjgG72llM4HwFUYxMqPGWpqh3tiDzYb9WHjN4IL72qv08v955XOML/T3fIXAxNOChtCYS8XURj01KmbNO87NCKfj/zE36A0jOTx6TXFllTC0DHxRul8WE3JQ== 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=93Ubm3I+3kzMCuiWfaLuZ5R1twOLZWSNsN54DgUYuuY=; b=Rb170m8ULvKAdNpVYEuG595foKrcudRAh4yuJ4/XY523lfyvRjwrbpRxBPGcCOY1kK4zMm0OakaHkTWWI5uYkgN0w3x7bCkZJFOcWP7zO17M7Cw1vSNRbVlTeF9Mm40+Bcpmk3K6QjzffSM8nYDG4+TKLE8qdfTXgs5Vr6yCQahxyI5ED7HoMelUzwEao2rQze0tMO8X44gDUyrlyo84NBEc0wfGXFyMPKXJQnZXNaIpHgG+n8MlN+9NXXNJMAdyg7ii3E6ZC6GvdzJOwIXRcgTS87WqSE6vxt1ncmI70YbHMmOxDmo/uekJL1AzLrv/WDhM9YRGpxDCwmTvus2bGw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none X-Received: from BL1PR13CA0368.namprd13.prod.outlook.com (2603:10b6:208:2c0::13) by SJ2PR12MB8181.namprd12.prod.outlook.com (2603:10b6:a03:4f6::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.28; Thu, 21 Sep 2023 12:56:41 +0000 X-Received: from BL02EPF0001A103.namprd05.prod.outlook.com (2603:10b6:208:2c0:cafe::36) by BL1PR13CA0368.outlook.office365.com (2603:10b6:208:2c0::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.11 via Frontend Transport; Thu, 21 Sep 2023 12:56:41 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+108942+1787277+3901457@groups.io; helo=mail02.groups.io; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C X-Received: from mail.nvidia.com (216.228.117.160) by BL02EPF0001A103.mail.protection.outlook.com (10.167.241.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.19 via Frontend Transport; Thu, 21 Sep 2023 12:56:40 +0000 X-Received: from rnnvmail202.nvidia.com (10.129.68.7) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Thu, 21 Sep 2023 05:56:27 -0700 X-Received: from rnnvmail202.nvidia.com (10.129.68.7) by rnnvmail202.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Thu, 21 Sep 2023 05:56:26 -0700 X-Received: from NV-CL38DL3.nvidia.com (10.127.8.11) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server id 15.2.986.41 via Frontend Transport; Thu, 21 Sep 2023 05:56:25 -0700 From: "Nickle Wang via groups.io" To: CC: Abner Chang , Igor Kulchytskyy , "Nick Ramirez" Subject: [edk2-devel] [PATCH v2] RedfishPkg/JsonLib: fix JsonObjectGetValue issue Date: Thu, 21 Sep 2023 20:56:25 +0800 Message-ID: <20230921125625.2629-1-nicklew@nvidia.com> MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0001A103:EE_|SJ2PR12MB8181:EE_ X-MS-Office365-Filtering-Correlation-Id: 2e362fe7-7ecc-45bf-0ef6-08dbbaa23351 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: gmiou2s2eSFGqIDaMxfXp8gBeb5MANKaAZbQEIxlX6a58EOdyAEKXhdwr4iL1Qk8KXAhPO5zx/KxYcRFJPgQlqDubXj0xFPI0j4UAxYd1VKXEzM0+w7Er/+yzjut2Og4U0glDwXjPdQ6Ydil5OvmfCK/EO+Fcp1qgv0GX5NFxLYNwjKKkejWFuuv1oSiVXGbo7ZNr4MomxaXhVs2VBQMIsSZmfSKauHkD/oELyZ92gOnuhqSkA+0A6vA7ZBRcsq2D4vT8CVv0y8j7+qE4zqhgG0PqVsfJxmlVxq3DDrt3bZNV5IfEZT8KvB1xlpT5F0Iy1y5WNDUsDtl1SGJ37cGI4piK7NEdbHMZqTd62FNTmTCFRCvrRFjg6v8nLbuxFFEOnSlb9KUwboGqO2wHegtmVkKzsz2uJ3jBAwpedtUtKvs+r11FtUMcC+FYF0C0OocPp7HBAHhGBonTrPumnM6njuiFfA2FCSy/RTKnKUzmUHeLULmqE9motAbr9DqetRdu3RoZMsXNMbkF8AbMhjFAY4UrTafySORCF5rq4zSvEb9sczP59tZ5n4FDC/rNnKQY5CarcpeLBNsnD78Le79F/j0szfgTay975Hx9Ab12SYmBnONAsm6WLikw8aHJ4Wi/sU+bsEZcFaCntGvfiajyG4eoiy2baUdmtLCQh4qAoC6EKrcyDZlGSnqe1UEYMBISEuxi3vVEwaKe+xrTS4Z6qdaK2w14QOs/QRSW6FTBo62EKCIe2fpd6S52XRQGteY X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2023 12:56:40.9600 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2e362fe7-7ecc-45bf-0ef6-08dbbaa23351 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0001A103.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8181 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,nicklew@nvidia.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: lNzLQSP8SX33IEhJWMFiyn9Bx1787277AA= Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1695301008235100001 Content-Type: text/plain; charset="utf-8" JsonObjectGetValue() cannot find corresponding JSON value when the EDKII_JSON_VALUE object is created by another UEFI driver. This is because "hashtable_seed" is initialized by current time while JsonLib is loaded. So, "hashtable_seed" will be different in each individual UEFI driver. Signed-off-by: Nickle Wang Cc: Abner Chang Cc: Igor Kulchytskyy Cc: Nick Ramirez Reviewed-by: Abner Chang --- RedfishPkg/Library/JsonLib/JsonLib.inf | 1 + RedfishPkg/Library/JsonLib/JsonLib.c | 35 ++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/RedfishPkg/Library/JsonLib/JsonLib.inf b/RedfishPkg/Library/Js= onLib/JsonLib.inf index 9d52a622e13a..b0d1bcac7cb3 100644 --- a/RedfishPkg/Library/JsonLib/JsonLib.inf +++ b/RedfishPkg/Library/JsonLib/JsonLib.inf @@ -15,6 +15,7 @@ MODULE_TYPE =3D DXE_DRIVER VERSION_STRING =3D 1.0 LIBRARY_CLASS =3D JsonLib|DXE_DRIVER UEFI_APPLICATION U= EFI_DRIVER + CONSTRUCTOR =3D JsonLibConstructor =20 # # VALID_ARCHITECTURES =3D IA32 X64 ARM AARCH64 RISCV64 diff --git a/RedfishPkg/Library/JsonLib/JsonLib.c b/RedfishPkg/Library/Json= Lib/JsonLib.c index 9b758b940293..6c3373d205c3 100644 --- a/RedfishPkg/Library/JsonLib/JsonLib.c +++ b/RedfishPkg/Library/JsonLib/JsonLib.c @@ -19,6 +19,8 @@ =20 #include "jansson.h" =20 +extern volatile UINT32 hashtable_seed; + /** The function is used to initialize a JSON value which contains a new JSO= N array, or NULL on error. Initially, the array is empty. @@ -1138,3 +1140,36 @@ JsonGetType ( { return (EDKII_JSON_TYPE)(((json_t *)JsonValue)->type); } + +/** + JSON Library constructor. + + @param ImageHandle The image handle. + @param SystemTable The system table. + + @retval EFI_SUCCESS Protocol listener is registered successfully. + +**/ +EFI_STATUS +EFIAPI +JsonLibConstructor ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + // + // hashtable_seed is initalized by current time while JsonLib is loaded. + // Due to above mechanism, hashtable_seed will be different in each indi= vidual + // UEFI driver. As the result, the hash of same key in different UEFI dr= iver + // would be different. This breaks JsonObjectGetValue() because + // JsonObjectGetValue() won't be able to find corresponding JSON value if + // this EDKII_JSON_VALUE is created by another UEFI driver. + // + // Initial the seed to a fixed magic value for JsonLib to be working in = all + // UEFI drivers. This fixed number will be removed after the protocol ve= rsion + // of JsonLib is implemented in the future. + // + hashtable_seed =3D 0xFDAE2143; + + return EFI_SUCCESS; +} --=20 2.17.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 (#108942): https://edk2.groups.io/g/devel/message/108942 Mute This Topic: https://groups.io/mt/101499238/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-