From nobody Sat Nov 2 16:33:35 2024 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Authentication-Results: mx.zoho.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org; Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1488180184779768.0144243355471; Sun, 26 Feb 2017 23:23:04 -0800 (PST) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 15908821BC; Sun, 26 Feb 2017 23:22:52 -0800 (PST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id E526881EFA for ; Sun, 26 Feb 2017 23:22:50 -0800 (PST) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga105.jf.intel.com with ESMTP; 26 Feb 2017 23:22:50 -0800 Received: from ray-dev.ccr.corp.intel.com ([10.239.9.25]) by fmsmga005.fm.intel.com with ESMTP; 26 Feb 2017 23:22:50 -0800 X-Original-To: edk2-devel@lists.01.org X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.35,213,1484035200"; d="scan'208";a="69934272" From: Ruiyu Ni To: edk2-devel@lists.01.org Date: Mon, 27 Feb 2017 15:22:38 +0800 Message-Id: <20170227072239.273228-11-ruiyu.ni@intel.com> X-Mailer: git-send-email 2.9.0.windows.1 In-Reply-To: <20170227072239.273228-1-ruiyu.ni@intel.com> References: <20170227072239.273228-1-ruiyu.ni@intel.com> Subject: [edk2] [PATCH v2 10/11] SignedCapsulePkg/IniParsingLib: Use AsciiStrToGuid in BaseLib X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jiewen Yao MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni Cc: Jiewen Yao Reviewed-by: jiewen.yao@intel.com --- .../Library/IniParsingLib/IniParsingLib.c | 146 +----------------= ---- 1 file changed, 3 insertions(+), 143 deletions(-) diff --git a/SignedCapsulePkg/Library/IniParsingLib/IniParsingLib.c b/Signe= dCapsulePkg/Library/IniParsingLib/IniParsingLib.c index 16e1349..5763e04 100644 --- a/SignedCapsulePkg/Library/IniParsingLib/IniParsingLib.c +++ b/SignedCapsulePkg/Library/IniParsingLib/IniParsingLib.c @@ -862,144 +862,6 @@ UpdateGetProfileString ( } =20 /** - Converts a list of string to a specified buffer. - - @param[out] Buf The output buffer that contains the string. - @param[in] BufferLength The length of the buffer - @param[in] Str The input string that contains the hex number - - @retval EFI_SUCCESS The string was successfully converted to the buff= er. - -**/ -EFI_STATUS -AsciiStrToBuf ( - OUT UINT8 *Buf, - IN UINTN BufferLength, - IN CHAR8 *Str - ) -{ - UINTN Index; - UINTN StrLength; - UINT8 Digit; - UINT8 Byte; - - Digit =3D 0; - - // - // Two hex char make up one byte - // - StrLength =3D BufferLength * 2; - - for(Index =3D 0; Index < StrLength; Index++, Str++) { - - if ((*Str >=3D 'a') && (*Str <=3D 'f')) { - Digit =3D (UINT8) (*Str - 'a' + 0x0A); - } else if ((*Str >=3D 'A') && (*Str <=3D 'F')) { - Digit =3D (UINT8) (*Str - 'A' + 0x0A); - } else if ((*Str >=3D '0') && (*Str <=3D '9')) { - Digit =3D (UINT8) (*Str - '0'); - } else { - return EFI_INVALID_PARAMETER; - } - - // - // For odd characters, write the upper nibble for each buffer byte, - // and for even characters, the lower nibble. - // - if ((Index & 1) =3D=3D 0) { - Byte =3D (UINT8) (Digit << 4); - } else { - Byte =3D Buf[Index / 2]; - Byte &=3D 0xF0; - Byte =3D (UINT8) (Byte | Digit); - } - - Buf[Index / 2] =3D Byte; - } - - return EFI_SUCCESS; -} - -/** - Converts a string to GUID value. - Guid Format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - - @param[in] Str The registry format GUID string that contai= ns the GUID value. - @param[out] Guid A pointer to the converted GUID value. - - @retval EFI_SUCCESS The GUID string was successfully converted to th= e GUID value. - @retval EFI_UNSUPPORTED The input string is not in registry format. - @return others Some error occurred when converting part of GUID= value. - -**/ -EFI_STATUS -IniAsciiStrToGuid ( - IN CHAR8 *Str, - OUT EFI_GUID *Guid - ) -{ - // - // Get the first UINT32 data - // - Guid->Data1 =3D (UINT32) AsciiStrHexToUint64 (Str); - while (!IS_HYPHEN (*Str) && !IS_NULL (*Str)) { - Str ++; - } - - if (IS_HYPHEN (*Str)) { - Str++; - } else { - return EFI_UNSUPPORTED; - } - - // - // Get the second UINT16 data - // - Guid->Data2 =3D (UINT16) AsciiStrHexToUint64 (Str); - while (!IS_HYPHEN (*Str) && !IS_NULL (*Str)) { - Str ++; - } - - if (IS_HYPHEN (*Str)) { - Str++; - } else { - return EFI_UNSUPPORTED; - } - - // - // Get the third UINT16 data - // - Guid->Data3 =3D (UINT16) AsciiStrHexToUint64 (Str); - while (!IS_HYPHEN (*Str) && !IS_NULL (*Str)) { - Str ++; - } - - if (IS_HYPHEN (*Str)) { - Str++; - } else { - return EFI_UNSUPPORTED; - } - - // - // Get the following 8 bytes data - // - AsciiStrToBuf (&Guid->Data4[0], 2, Str); - // - // Skip 2 byte hex chars - // - Str +=3D 2 * 2; - - if (IS_HYPHEN (*Str)) { - Str++; - } else { - return EFI_UNSUPPORTED; - } - AsciiStrToBuf (&Guid->Data4[2], 6, Str); - - return EFI_SUCCESS; -} - -/** Pre process config data buffer into Section entry list and Comment entry= list. =20 @param[in] DataBuffer Config raw file buffer. @@ -1243,6 +1105,7 @@ GetGuidFromDataFile ( { CHAR8 *Value; EFI_STATUS Status; + RETURN_STATUS RStatus; =20 if (Context =3D=3D NULL || SectionName =3D=3D NULL || EntryName =3D=3D N= ULL || Guid =3D=3D NULL) { return EFI_INVALID_PARAMETER; @@ -1258,11 +1121,8 @@ GetGuidFromDataFile ( return EFI_NOT_FOUND; } ASSERT (Value !=3D NULL); - if (!IsValidGuid(Value, AsciiStrLen(Value))) { - return EFI_NOT_FOUND; - } - Status =3D IniAsciiStrToGuid(Value, Guid); - if (EFI_ERROR (Status)) { + RStatus =3D AsciiStrToGuid (Value, Guid); + if (RETURN_ERROR (RStatus) || (Value[GUID_STRING_LENGTH] !=3D '\0')) { return EFI_NOT_FOUND; } return EFI_SUCCESS; --=20 2.9.0.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel