From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from fb.mail.gandi.net (spool7.mail.gandi.net [217.70.178.216]) by nmboxes7-ms7.sd4.0x35.net (Postfix) with ESMTPS id 3EFB761930 for ; Tue, 16 Jan 2024 06:17:05 +0000 (UTC) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by fb.mail.gandi.net (Postfix) with ESMTPS id 98F306037A for ; Tue, 16 Jan 2024 06:17:04 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=AkEOhqCMr2L3XYJosmA8bS7Fv4L32AkbfrFJLIHiC/k=; 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:msip_labels: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=1705385823; v=1; b=vWrtIJZ8JRhPkr5QkMIG3wr2Z3LCdjaEsyte4vwhVcG7PrsflpOzDQ58upcYfqCgXDM9gcN8 gfpYTvtQ5chw2GB+SJOPwAYhyBWZ5kcK1d8EQPYNwf7s9+xbGLjjfR4S91urxP5+HCSnwzVJBHy 7q+r1gGWa2e+r59GwWpfoNsA= X-Received: by 127.0.0.2 with SMTP id RozQYY7687511xrCHDhSiqh2; Mon, 15 Jan 2024 22:17:03 -0800 X-Received: from NAM10-MW2-obe.outbound.protection.outlook.com (NAM10-MW2-obe.outbound.protection.outlook.com [40.107.94.52]) by mx.groups.io with SMTP id smtpd.web10.69683.1705295823133098963 for ; Sun, 14 Jan 2024 21:17:03 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TA5FkF9Wx+xmW884cGEhXK7Ppto3Mq9gzFrMhdtscNpYDscK5qJDZfOEBm5/q2G+vIhllzsF321/K22ULoqsSS9Q0HxouUX4Jrgdyypl5jFqK74vkuMeQA3eZ44x5V6f5G1l+3Za0yHh7DmodzWQA/lMGUMTQn9m+FZAL/oBXjDwhKmtPOYkLlUCwBnTN+iFOa0RuOh1awQU34mKmg3KtF/OyDt9mCsUgCUYfStse+dzk3nsjl+Yrdhdd4cxfFJ1Rh1uJj2p9KdrL5LI14TDtCGShXYDX3J76zm4gZz2q/3kEiVXrJo/Dn3704jaD3/FCSagYQ1rhE02YbLiOKZJmA== 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=ri0XProAQP0rZSNVvLtMfXlIC6mbAmI8rPn/tUJ5TDE=; b=hvwgZL2ScVeBoEdSLtNoCImmmykcgpVMxJBi4Se+28tEXaXOj2cThmbAwdMGxjiRYzuPpdw2L/f1WzHORBjeEq2RVTO1sP7onJRWVGqvWNHvUE03npZLcj/UhVIfCud6GsoomofM8uK+6X2wRijNveN355rldUfYrMzSMRRw6EWCJiBFdze0RqK+2eUX3ZI01G1qTecmadijfO60yE0jvZsbCcLm1RGAR22MKwl14fPiserNKjxcGZqKLKoVKcwMWr680H08X3zlqLayYD2w5r737NH7+kOmDvD8tApKrC7Wq9NRsQedQUYH+QLdL3wBhgkcs5p/BEZ5Skbblpcf9Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none X-Received: from LV8PR12MB9452.namprd12.prod.outlook.com (2603:10b6:408:200::8) by DS0PR12MB7946.namprd12.prod.outlook.com (2603:10b6:8:151::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.19; Mon, 15 Jan 2024 05:17:00 +0000 X-Received: from LV8PR12MB9452.namprd12.prod.outlook.com ([fe80::67bd:f1b9:58a3:d2e6]) by LV8PR12MB9452.namprd12.prod.outlook.com ([fe80::67bd:f1b9:58a3:d2e6%7]) with mapi id 15.20.7159.020; Mon, 15 Jan 2024 05:17:00 +0000 From: "Chang, Abner via groups.io" To: Nickle Wang , "devel@edk2.groups.io" CC: Igor Kulchytskyy , Nick Ramirez Subject: Re: [edk2-devel] [PATCH v2] RedfishPkg/RedfishCrtLib: handle floating point number in JSON Thread-Topic: [PATCH v2] RedfishPkg/RedfishCrtLib: handle floating point number in JSON Thread-Index: AQHaRvPux2rxrsxaIUGrXOQjlS8+E7DaVhyA Date: Mon, 15 Jan 2024 05:17:00 +0000 Message-ID: References: <20240114141346.608-1-nicklew@nvidia.com> In-Reply-To: <20240114141346.608-1-nicklew@nvidia.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=f71fb9c3-f0d5-4824-b6e7-451f70d55569;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=0;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2024-01-15T05:16:34Z;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: LV8PR12MB9452:EE_|DS0PR12MB7946:EE_ x-ms-office365-filtering-correlation-id: bd7fa819-5df6-46f8-ab74-08dc15893412 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: OapJupmd/Gd8mA31Llz0/3+3eNA5n2R8sQE+O6k0V4u0nFDkGA+o9fnlHHWwJ0na9ej2m5fd/TB26l3uTZxQzH8uHO32VQaBgdQuCzdzJlhmrCVTZufY2rAylf4DtXu2QMxAK5B/ltEG9TbID1dTSIXfHMPdwDD3pNKMpghgc0LJhRsBSBEE04GYPlCUhmM9dRtptI/ss4FaLCElf9ba0hBopfZicIOCd8TF9RR8X6OOYhQNpowywodJGARqCxTdGoKSxrKioeH0P4Ac8xofdycB0cHw9cFM1Bvowj7G/mlyZqUU3Sd5GWfhoIaMYxFPNz1cQ5llvpjRWqEursB1WVWjV1KFfntP06InkUGhQeu4KEQCKHJYpXiVONhvsiLSMRNjxj9OywMFEArAyQs3M4g32pexZM1ya+cLDqfQIKEPZ/vLwjBRjhjlzWOs7pqcs3w7Nv98g3ULugrgCSZLs+DTbimliTU1fDUbhFbdaYSAjWH2eEtNX8doRaNdhKbxt8mL0fdWLwEVx5pcywSiYVoBcMfa8C6yUtun46Q3B0X2LeFhDzvES4Zb7DYXkpZyVkdy2mKLyB9eXyQti+o/ho7dOdc1vIK0CqlHGD70EAuFURz1W8lg2ECrxkHCtl6eaSoh5veyP1AAtsDWhJ59ST2vr1vEBf1RIdHr/L/HGmU= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?nB3ZmGhBOXgU24RW+EIykSQ7G+Mi4CJk7nMzBbO2/jHDjCZ6AL9mhlWnGQnN?= =?us-ascii?Q?YYYCq6hvS/ntI+axMZVzeEzr4xGnL/tI8mF7+Vk7QPPxQljuvQ0ukpLelAbQ?= =?us-ascii?Q?CMRHNcO2+AYt2hu+K2J9C0FEQWubw2tw/E/2Y1QOL0xTuojUd/qKHedeI5dy?= =?us-ascii?Q?A/pRYjo/gfTnVE5DrMN9LLR2X+nNOyCK5bDM3T95dTwnHwbYz6bT+pMazCHL?= =?us-ascii?Q?BrfCHXBUPZiMfh6B/Lxngtlgi+Jtt5QqHnTMNQ9moPG26a+8ZyE0pawjMIB7?= =?us-ascii?Q?OI8ItbL41rrubZWJqo2FVaXVG0JZcmL0VFiCc7VSuknstI7zZrpfKlhShMAw?= =?us-ascii?Q?7Mah+nLwITsa2tCjkxqbbDus5MMgUJj9xBGw4dsasafWtSHUP2CJNOVmBvc2?= =?us-ascii?Q?ISI13Xq61fqt7aYkeAU650EJ2ON9ume7m7eGAVfwTeT1Bu1NR7T+7mfjBEC1?= =?us-ascii?Q?xJvjxAXJUJpaWScOVwm6Ghlmm0Us0MmO8S0zbaBw2w7rTotM3zTRshqLF4Yd?= =?us-ascii?Q?tJL0QlVeONr2ttKfBvh8uQXUFjTeW3nPjLMEjZp8vQnW5HgVCx7q4HnoLz/e?= =?us-ascii?Q?+opp8W25M/o/Je/YSqFA4aatIaeUuaWe48r4ME/y5edSZIVjXtgz4xLBLAM3?= =?us-ascii?Q?tEx0Kylq6psOPmPMYr95Nqi3wmRoXWeC3Kj64mo79m9FoaspAP0Ipo/FWZgV?= =?us-ascii?Q?zwfklypNN/Qcq0QWusZjT2G3UPAlVe5+IAC8zCFQTEnVxZhsWcwepxHB+1tD?= =?us-ascii?Q?gu9+UoTfgxzX2VZsucQW0Y0gq4emHIzxe+W5E4njAkB2dq5PWF8TJxpgIusX?= =?us-ascii?Q?7SoENneiOT8kzaQhPzuyUeT/ckWctjGq+IrOijZu29lp0agHzpXHmSZUvnmv?= =?us-ascii?Q?s3zhdloM4gubeP0Fj4k5jUEH8HEGiT9v2qmAM01eUYU5/GPfnQfVyREsay33?= =?us-ascii?Q?RrDGZNoP7m4nr/yRSEiYkLSZpjxAVTOW70nJ3UyhKKvvkMw38fZr0k1xhqL8?= =?us-ascii?Q?I5ONjW7hptbDbT4QoaWRKBaYEiMNDg/TFRA5vsjEkd01OEWFSPKzsCaZ5DWg?= =?us-ascii?Q?JjSIXM70B65q0vgLJypXgv2lZJf8mHk3qP2dfoyoN4VAyZ4NAEl/B/VrXJcX?= =?us-ascii?Q?PIIUcCFxzwRG/OWUHXdu116Lj+K7TLmae/RTxFIFM8Ncy6TLtb8XAoCYgZk3?= =?us-ascii?Q?DeLa3Lvxqfy1U8Ai72WztbKrky3XjOQoqWVrrweVPSg3fxrjnbj8tUmfe8zX?= =?us-ascii?Q?PuTipS4HtrPQKmXEnS1YL6tXLRACewLVfVSxHUplxlBwWUsAL1rgM7dVnC9M?= =?us-ascii?Q?CKc/3IAICZ0BDP9C3vPaUTvUQumpE63e4mCbGW/xfXYnaG6iAWSB/VoAoFUK?= =?us-ascii?Q?GM1zWpaJMxjfSI0UDe4rdXfi3hoDrwpLi6uuGxzTjiCK3wJttLk6kaDP51nK?= =?us-ascii?Q?YGhdaUlv5mCxwdwuz4+RsQligHo6i3IqYn19dF9C7LAVIqilBse8OYI9Lelk?= =?us-ascii?Q?pAQkX1lmhjb/nO3MZ9ORa9dzsBPax0sDQZSfVxRE0NIiBdUIarDphkt00j4b?= =?us-ascii?Q?oY+c7Eivtb3eqYbOgbM=3D?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: LV8PR12MB9452.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bd7fa819-5df6-46f8-ab74-08dc15893412 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Jan 2024 05:17:00.7504 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 1SGykDRFMXahe7/txvP0RZ7z3nVmkOwdF4mw+I2K3XgodUc5lryou0n3Xk/Bp3qBk8MRVYxQv3ga+SD4d7d4ZQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7946 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: ExqdXxaw67axJMwwiZPKHumCx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: fb.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=vWrtIJZ8; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=none; spf=pass (fb.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io [AMD Official Use Only - General] Reviewed-by: Abner Chang > -----Original Message----- > From: Nickle Wang > Sent: Sunday, January 14, 2024 10:14 PM > To: devel@edk2.groups.io > Cc: Chang, Abner ; Igor Kulchytskyy > ; Nick Ramirez > Subject: [PATCH v2] RedfishPkg/RedfishCrtLib: handle floating point numbe= r > in JSON > > Caution: This message originated from an External Source. Use proper caut= ion > when opening attachments, clicking links, or responding. > > > When the value type is defined as number in Redfish schema, floating > point number is allowed. RedfishCrtLib raises assert without handling > this case now. Follow the way in EDK2 to call AsciiStrDecimalToUintnS > and handle the floating point number. Only the integer value is > returned. > > Signed-off-by: Nickle Wang > Cc: Abner Chang > Cc: Igor Kulchytskyy > Cc: Nick Ramirez > --- > RedfishPkg/Library/JsonLib/load.c | 5 +-- > .../RedfishCrtLib/RedfishCrtLib.c | 32 ++++++++++++++++--- > 2 files changed, 30 insertions(+), 7 deletions(-) > > diff --git a/RedfishPkg/Library/JsonLib/load.c > b/RedfishPkg/Library/JsonLib/load.c > index 958c3ea8c5..1a3b4a6e6a 100644 > --- a/RedfishPkg/Library/JsonLib/load.c > +++ b/RedfishPkg/Library/JsonLib/load.c > @@ -5,6 +5,7 @@ > * it under the terms of the MIT license. See LICENSE for details. > > (C) Copyright 2020 Hewlett Packard Enterprise Development LP
> + Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserve= d. > > SPDX-License-Identifier: BSD-2-Clause-Patent AND MIT > */ > @@ -717,8 +718,8 @@ lex_scan_number ( > goto out; > } > > - lex->token =3D TOKEN_REAL; > - lex->value.real =3D doubleval; > + lex->token =3D TOKEN_INTEGER; > + lex->value.integer =3D doubleval; > return 0; > > out: > diff --git a/RedfishPkg/PrivateLibrary/RedfishCrtLib/RedfishCrtLib.c > b/RedfishPkg/PrivateLibrary/RedfishCrtLib/RedfishCrtLib.c > index 57a997f351..902dd0b3a0 100644 > --- a/RedfishPkg/PrivateLibrary/RedfishCrtLib/RedfishCrtLib.c > +++ b/RedfishPkg/PrivateLibrary/RedfishCrtLib/RedfishCrtLib.c > @@ -4,6 +4,7 @@ > > Copyright (c) 2019, Intel Corporation. All rights reserved.
> (C) Copyright 2020 Hewlett Packard Enterprise Development LP
> + Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights > reserved. > > SPDX-License-Identifier: BSD-2-Clause-Patent > > @@ -519,7 +520,7 @@ strtoull ( > } > > /** > - edk2 Jansson port does not support doubles, simply return 0. > + edk2 Jansson port does not support doubles, simply return integer part= . > > These conversion functions convert the initial portion of the string > pointed to by nptr to double, float, and long double representation, > @@ -540,7 +541,7 @@ strtoull ( > the return value), and ERANGE is stored in errno. If the correct valu= e > would cause underflow, zero is returned and ERANGE is stored in errno. > > - @return Return 0. > + @return Integer part of decimal number. > **/ > double > strtod ( > @@ -548,9 +549,30 @@ strtod ( > char **__restrict endptr > ) > { > - DEBUG ((DEBUG_ERROR, "We don't supprot double type on edk2 yet!")); > - ASSERT (FALSE); > - return (double)0; > + UINTN Data; > + UINTN StrLen; > + > + Data =3D 0; > + StrLen =3D 0; > + > + if (nptr =3D=3D NULL) { > + return (double)0; > + } > + > + AsciiStrDecimalToUintnS (nptr, NULL, &Data); > + DEBUG ((DEBUG_WARN, "%a: \"%a\" We don't support double type on > edk2 yet. Only integer part is returned: %d\n", __func__, nptr, Data)); > + > + // > + // Force endptr to the last position of nptr because caller may > + // check endptr and raise assertion. We don't support floating > + // number in edk2 so this prevents unecessary assertion from happening= . > + // > + if (endptr !=3D NULL) { > + StrLen =3D AsciiStrLen (nptr); > + *endptr =3D (char *__restrict)nptr + StrLen; > + } > + > + return (double)Data; > } > > static UINT8 BitMask[] =3D { > -- > 2.34.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 (#113793): https://edk2.groups.io/g/devel/message/113793 Mute This Topic: https://groups.io/mt/103718898/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-