From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.35,213,1484035200"; d="scan'208";a="69934272" 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 From: Ruiyu Ni To: edk2-devel@lists.01.org Cc: Jiewen Yao 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: [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: , X-List-Received-Date: Mon, 27 Feb 2017 07:22:51 -0000 Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni Cc: Jiewen Yao --- .../Library/IniParsingLib/IniParsingLib.c | 146 +-------------------- 1 file changed, 3 insertions(+), 143 deletions(-) diff --git a/SignedCapsulePkg/Library/IniParsingLib/IniParsingLib.c b/SignedCapsulePkg/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 ( } /** - 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 buffer. - -**/ -EFI_STATUS -AsciiStrToBuf ( - OUT UINT8 *Buf, - IN UINTN BufferLength, - IN CHAR8 *Str - ) -{ - UINTN Index; - UINTN StrLength; - UINT8 Digit; - UINT8 Byte; - - Digit = 0; - - // - // Two hex char make up one byte - // - StrLength = BufferLength * 2; - - for(Index = 0; Index < StrLength; Index++, Str++) { - - if ((*Str >= 'a') && (*Str <= 'f')) { - Digit = (UINT8) (*Str - 'a' + 0x0A); - } else if ((*Str >= 'A') && (*Str <= 'F')) { - Digit = (UINT8) (*Str - 'A' + 0x0A); - } else if ((*Str >= '0') && (*Str <= '9')) { - Digit = (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) == 0) { - Byte = (UINT8) (Digit << 4); - } else { - Byte = Buf[Index / 2]; - Byte &= 0xF0; - Byte = (UINT8) (Byte | Digit); - } - - Buf[Index / 2] = 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 contains the GUID value. - @param[out] Guid A pointer to the converted GUID value. - - @retval EFI_SUCCESS The GUID string was successfully converted to the 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 = (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 = (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 = (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 += 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. @param[in] DataBuffer Config raw file buffer. @@ -1243,6 +1105,7 @@ GetGuidFromDataFile ( { CHAR8 *Value; EFI_STATUS Status; + RETURN_STATUS RStatus; if (Context == NULL || SectionName == NULL || EntryName == NULL || Guid == NULL) { return EFI_INVALID_PARAMETER; @@ -1258,11 +1121,8 @@ GetGuidFromDataFile ( return EFI_NOT_FOUND; } ASSERT (Value != NULL); - if (!IsValidGuid(Value, AsciiStrLen(Value))) { - return EFI_NOT_FOUND; - } - Status = IniAsciiStrToGuid(Value, Guid); - if (EFI_ERROR (Status)) { + RStatus = AsciiStrToGuid (Value, Guid); + if (RETURN_ERROR (RStatus) || (Value[GUID_STRING_LENGTH] != '\0')) { return EFI_NOT_FOUND; } return EFI_SUCCESS; -- 2.9.0.windows.1