From: xli24 Date: Thu, 26 Apr 2007 08:36:34 +0000 (+0000) Subject: Safely use MDE StrSize(), instead of its own function calculating string size, becaus... X-Git-Tag: edk2-stable201903~23317 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=34e0daf37dcf7279a42a9f12c601707e53998aaa Safely use MDE StrSize(), instead of its own function calculating string size, because the IPF global pointer conversion issue has been solved. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2582 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/EdkModulePkg/Universal/Variable/RuntimeDxe/Variable.c b/EdkModulePkg/Universal/Variable/RuntimeDxe/Variable.c index cd38536836..589217a992 100644 --- a/EdkModulePkg/Universal/Variable/RuntimeDxe/Variable.c +++ b/EdkModulePkg/Universal/Variable/RuntimeDxe/Variable.c @@ -59,39 +59,6 @@ ReleaseLockOnlyAtBootTime ( } } -/** - A temparaty function that returns the size of a Null-terminated Unicode - string in bytes, including the Null terminator. - - This function returns the size, in bytes, of the Null-terminated Unicode - string specified by String. It duplicates the functionality of StrSize() - in MDE library, but avoids using PCD, because IPF currently cannot convert - address of global variable for runtime. - - If String is NULL, then ASSERT(). - If String is not aligned on a 16-bit boundary, then ASSERT(). - - @param String Pointer to a Null-terminated Unicode string. - - @return The size of String. - -**/ -STATIC -UINTN -StrSizeOfVariableName ( - IN CONST CHAR16 *String - ) -{ - UINTN Length; - - ASSERT (String != NULL); - ASSERT (((UINTN) String & 0x01) == 0); - - for (Length = 0; *String != L'\0'; String++, Length++); - - return (Length + 1) * sizeof (*String); -} - STATIC BOOLEAN EFIAPI @@ -868,7 +835,7 @@ Returns: // Status = EFI_WRITE_PROTECTED; goto Done; - } else if (sizeof (VARIABLE_HEADER) + StrSizeOfVariableName (VariableName) + DataSize > MAX_VARIABLE_SIZE) { + } else if (sizeof (VARIABLE_HEADER) + StrSize (VariableName) + DataSize > MAX_VARIABLE_SIZE) { // // The size of the VariableName, including the Unicode Null in bytes plus // the DataSize is limited to maximum size of MAX_VARIABLE_SIZE (1024) bytes. @@ -977,7 +944,7 @@ Returns: // NextVariable->Reserved = 0; VarNameOffset = sizeof (VARIABLE_HEADER); - VarNameSize = StrSizeOfVariableName (VariableName); + VarNameSize = StrSize (VariableName); CopyMem ( (UINT8 *) ((UINTN) NextVariable + VarNameOffset), VariableName,