summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg/Universal/HiiDatabaseDxe
diff options
context:
space:
mode:
authorStar Zeng <star.zeng@intel.com>2016-06-15 13:35:14 +0800
committerStar Zeng <star.zeng@intel.com>2016-06-21 12:46:24 +0800
commitb68ccac17c7e6340ab7b3654ea51c86ad6b4201d (patch)
tree21705299976da1e4b260f5a681bf0445e5c7e36c /MdeModulePkg/Universal/HiiDatabaseDxe
parentca2ac9d521b595e969dbe65f1a19fd96d499fa61 (diff)
downloadedk2-b68ccac17c7e6340ab7b3654ea51c86ad6b4201d.tar.gz
edk2-b68ccac17c7e6340ab7b3654ea51c86ad6b4201d.tar.bz2
edk2-b68ccac17c7e6340ab7b3654ea51c86ad6b4201d.zip
MdeModulePkg: Replace UnicodeStrToAsciiStr/AsciiStrToUnicodeStr
It is the follow up of 3ab41b7a325ca11a12b42f5ad1661c4b6791cb49 to replace UnicodeStrToAsciiStr/AsciiStrToUnicodeStr with UnicodeStrToAsciiStrS/AsciiStrToUnicodeStrS. Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Eric Dong <eric.dong@intel.com> Cc: Feng Tian <feng.tian@intel.com> Cc: Ruiyu Ni <ruiyu.ni@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Diffstat (limited to 'MdeModulePkg/Universal/HiiDatabaseDxe')
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/ConfigKeywordHandler.c46
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c42
2 files changed, 56 insertions, 32 deletions
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigKeywordHandler.c b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigKeywordHandler.c
index 5e7aca9681..03f8141199 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigKeywordHandler.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigKeywordHandler.c
@@ -178,6 +178,7 @@ ExtractNameSpace (
)
{
CHAR16 *TmpPtr;
+ UINTN NameSpaceSize;
ASSERT (NameSpace != NULL);
@@ -218,11 +219,12 @@ ExtractNameSpace (
// Input NameSpace is unicode string. The language in String package is ascii string.
// Here will convert the unicode string to ascii and save it.
//
- *NameSpace = AllocatePool (StrLen (String) + 1);
+ NameSpaceSize = StrLen (String) + 1;
+ *NameSpace = AllocatePool (NameSpaceSize);
if (*NameSpace == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- UnicodeStrToAsciiStr (String, *NameSpace);
+ UnicodeStrToAsciiStrS (String, *NameSpace, NameSpaceSize);
if (TmpPtr != NULL) {
*TmpPtr = L'&';
@@ -779,6 +781,7 @@ GetStringIdFromString (
UINTN StringSize;
CHAR16 *String;
CHAR8 *AsciiKeywordValue;
+ UINTN KeywordValueSize;
EFI_STATUS Status;
ASSERT (StringPackage != NULL && KeywordValue != NULL && StringId != NULL);
@@ -794,11 +797,12 @@ GetStringIdFromString (
//
// Make a ascii keyword value for later use.
//
- AsciiKeywordValue = AllocatePool (StrLen (KeywordValue) + 1);
+ KeywordValueSize = StrLen (KeywordValue) + 1;
+ AsciiKeywordValue = AllocatePool (KeywordValueSize);
if (AsciiKeywordValue == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- UnicodeStrToAsciiStr(KeywordValue, AsciiKeywordValue);
+ UnicodeStrToAsciiStrS (KeywordValue, AsciiKeywordValue, KeywordValueSize);
while (*BlockHdr != EFI_HII_SIBT_END) {
switch (*BlockHdr) {
@@ -1065,11 +1069,12 @@ GetNextStringId (
StringTextPtr = BlockHdr + Offset;
if (FindString) {
- *KeywordValue = AllocatePool (AsciiStrSize ((CHAR8 *) StringTextPtr) * sizeof (CHAR16));
+ StringSize = AsciiStrSize ((CHAR8 *) StringTextPtr);
+ *KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));
if (*KeywordValue == NULL) {
return 0;
}
- AsciiStrToUnicodeStr ((CHAR8 *) StringTextPtr, *KeywordValue);
+ AsciiStrToUnicodeStrS ((CHAR8 *) StringTextPtr, *KeywordValue, StringSize);
return CurrentStringId;
} else if (CurrentStringId == StringId) {
FindString = TRUE;
@@ -1084,11 +1089,12 @@ GetNextStringId (
StringTextPtr = BlockHdr + Offset;
if (FindString) {
- *KeywordValue = AllocatePool (AsciiStrSize ((CHAR8 *) StringTextPtr) * sizeof (CHAR16));
+ StringSize = AsciiStrSize ((CHAR8 *) StringTextPtr);
+ *KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));
if (*KeywordValue == NULL) {
return 0;
}
- AsciiStrToUnicodeStr ((CHAR8 *) StringTextPtr, *KeywordValue);
+ AsciiStrToUnicodeStrS ((CHAR8 *) StringTextPtr, *KeywordValue, StringSize);
return CurrentStringId;
} else if (CurrentStringId == StringId) {
FindString = TRUE;
@@ -1105,11 +1111,12 @@ GetNextStringId (
for (Index = 0; Index < StringCount; Index++) {
if (FindString) {
- *KeywordValue = AllocatePool (AsciiStrSize ((CHAR8 *) StringTextPtr) * sizeof (CHAR16));
+ StringSize = AsciiStrSize ((CHAR8 *) StringTextPtr);
+ *KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));
if (*KeywordValue == NULL) {
return 0;
}
- AsciiStrToUnicodeStr ((CHAR8 *) StringTextPtr, *KeywordValue);
+ AsciiStrToUnicodeStrS ((CHAR8 *) StringTextPtr, *KeywordValue, StringSize);
return CurrentStringId;
} else if (CurrentStringId == StringId) {
FindString = TRUE;
@@ -1132,11 +1139,12 @@ GetNextStringId (
for (Index = 0; Index < StringCount; Index++) {
if (FindString) {
- *KeywordValue = AllocatePool (AsciiStrSize ((CHAR8 *) StringTextPtr) * sizeof (CHAR16));
+ StringSize = AsciiStrSize ((CHAR8 *) StringTextPtr);
+ *KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));
if (*KeywordValue == NULL) {
return 0;
}
- AsciiStrToUnicodeStr ((CHAR8 *) StringTextPtr, *KeywordValue);
+ AsciiStrToUnicodeStrS ((CHAR8 *) StringTextPtr, *KeywordValue, StringSize);
return CurrentStringId;
} else if (CurrentStringId == StringId) {
FindString = TRUE;
@@ -1670,6 +1678,7 @@ ConstructConfigHdr (
UINT8 *Buffer;
CHAR16 *Name;
CHAR8 *AsciiName;
+ UINTN NameSize;
EFI_GUID *Guid;
UINTN MaxLen;
@@ -1699,9 +1708,10 @@ ConstructConfigHdr (
}
if (AsciiName != NULL) {
- Name = AllocateZeroPool (AsciiStrSize (AsciiName) * 2);
+ NameSize = AsciiStrSize (AsciiName);
+ Name = AllocateZeroPool (NameSize * sizeof (CHAR16));
ASSERT (Name != NULL);
- AsciiStrToUnicodeStr(AsciiName, Name);
+ AsciiStrToUnicodeStrS (AsciiName, Name, NameSize);
} else {
Name = NULL;
}
@@ -2375,6 +2385,7 @@ GenerateKeywordResp (
CHAR16 *RespStr;
CHAR16 *PathHdr;
CHAR16 *UnicodeNameSpace;
+ UINTN NameSpaceLength;
ASSERT ((NameSpace != NULL) && (DevicePath != NULL) && (KeywordData != NULL) && (ValueStr != NULL) && (KeywordResp != NULL));
@@ -2385,12 +2396,13 @@ GenerateKeywordResp (
// 1.1 NameSpaceId size.
// 'NAMESPACE='<String>
//
- RespStrLen = 10 + AsciiStrLen (NameSpace);
- UnicodeNameSpace = AllocatePool ((AsciiStrLen (NameSpace) + 1) * sizeof (CHAR16));
+ NameSpaceLength = AsciiStrLen (NameSpace);
+ RespStrLen = 10 + NameSpaceLength;
+ UnicodeNameSpace = AllocatePool ((NameSpaceLength + 1) * sizeof (CHAR16));
if (UnicodeNameSpace == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- AsciiStrToUnicodeStr(NameSpace, UnicodeNameSpace);
+ AsciiStrToUnicodeStrS (NameSpace, UnicodeNameSpace, NameSpaceLength + 1);
//
// 1.2 PathHdr size.
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
index a704734b30..106f25db11 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
@@ -1604,6 +1604,7 @@ GetVarStoreType (
UINTN PackageOffset;
EFI_IFR_OP_HEADER *IfrOpHdr;
CHAR16 *VarStoreName;
+ UINTN NameSize;
EFI_STRING GuidStr;
EFI_STRING NameStr;
EFI_STRING TempStr;
@@ -1658,12 +1659,13 @@ GetVarStoreType (
continue;
}
- VarStoreName = AllocateZeroPool (AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name) * sizeof (CHAR16));
+ NameSize = AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name);
+ VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));
if (VarStoreName == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
- AsciiStrToUnicodeStr ((CHAR8 *) IfrEfiVarStore->Name, VarStoreName);
+ AsciiStrToUnicodeStrS ((CHAR8 *) IfrEfiVarStore->Name, VarStoreName, NameSize);
GenerateSubStr (L"GUID=", sizeof (EFI_GUID), (VOID *) &IfrEfiVarStore->Guid, 1, &GuidStr);
GenerateSubStr (L"NAME=", StrLen (VarStoreName) * sizeof (CHAR16), (VOID *) VarStoreName, 2, &NameStr);
@@ -1836,6 +1838,7 @@ IsThisPackageList (
UINTN PackageOffset;
EFI_IFR_OP_HEADER *IfrOpHdr;
CHAR16 *VarStoreName;
+ UINTN NameSize;
UINT8 *HiiFormPackage;
UINTN PackageSize;
EFI_IFR_VARSTORE_EFI *IfrEfiVarStore;
@@ -1880,11 +1883,12 @@ IsThisPackageList (
case EFI_IFR_VARSTORE_OP:
IfrVarStore = (EFI_IFR_VARSTORE *) IfrOpHdr;
- VarStoreName = AllocateZeroPool (AsciiStrSize ((CHAR8 *)IfrVarStore->Name) * sizeof (CHAR16));
+ NameSize = AsciiStrSize ((CHAR8 *)IfrVarStore->Name);
+ VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));
if (VarStoreName == NULL) {
goto Done;
}
- AsciiStrToUnicodeStr ((CHAR8 *)IfrVarStore->Name, VarStoreName);
+ AsciiStrToUnicodeStrS ((CHAR8 *)IfrVarStore->Name, VarStoreName, NameSize);
if (IsThisVarstore((VOID *)&IfrVarStore->Guid, VarStoreName, ConfigHdr)) {
FindVarstore = TRUE;
@@ -1897,11 +1901,12 @@ IsThisPackageList (
case EFI_IFR_VARSTORE_EFI_OP:
IfrEfiVarStore = (EFI_IFR_VARSTORE_EFI *) IfrOpHdr;
- VarStoreName = AllocateZeroPool (AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name) * sizeof (CHAR16));
+ NameSize = AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name);
+ VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));
if (VarStoreName == NULL) {
goto Done;
}
- AsciiStrToUnicodeStr ((CHAR8 *)IfrEfiVarStore->Name, VarStoreName);
+ AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, VarStoreName, NameSize);
if (IsThisVarstore (&IfrEfiVarStore->Guid, VarStoreName, ConfigHdr)) {
FindVarstore = TRUE;
@@ -2086,6 +2091,7 @@ ParseIfrData (
IFR_DEFAULT_DATA *DefaultDataPtr;
IFR_BLOCK_DATA *BlockData;
CHAR16 *VarStoreName;
+ UINTN NameSize;
UINT16 VarWidth;
UINT16 VarDefaultId;
BOOLEAN FirstOneOfOption;
@@ -2144,12 +2150,13 @@ ParseIfrData (
IfrVarStore = (EFI_IFR_VARSTORE *) IfrOpHdr;
- VarStoreName = AllocateZeroPool (AsciiStrSize ((CHAR8 *)IfrVarStore->Name) * sizeof (CHAR16));
+ NameSize = AsciiStrSize ((CHAR8 *)IfrVarStore->Name);
+ VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));
if (VarStoreName == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
- AsciiStrToUnicodeStr ((CHAR8 *)IfrVarStore->Name, VarStoreName);
+ AsciiStrToUnicodeStrS ((CHAR8 *)IfrVarStore->Name, VarStoreName, NameSize);
if (IsThisVarstore((VOID *)&IfrVarStore->Guid, VarStoreName, ConfigHdr)) {
//
@@ -2185,12 +2192,13 @@ ParseIfrData (
break;
}
- VarStoreName = AllocateZeroPool (AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name) * sizeof (CHAR16));
+ NameSize = AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name);
+ VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));
if (VarStoreName == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
- AsciiStrToUnicodeStr ((CHAR8 *)IfrEfiVarStore->Name, VarStoreName);
+ AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, VarStoreName, NameSize);
if (IsThisVarstore (&IfrEfiVarStore->Guid, VarStoreName, ConfigHdr)) {
//
@@ -3966,6 +3974,7 @@ GetConfigRespFromEfiVarStore (
{
EFI_STATUS Status;
EFI_STRING VarStoreName;
+ UINTN NameSize;
UINT8 *VarStore;
UINTN BufferSize;
@@ -3974,13 +3983,14 @@ GetConfigRespFromEfiVarStore (
VarStore = NULL;
VarStoreName = NULL;
*AccessProgress = Request;
-
- VarStoreName = AllocateZeroPool (AsciiStrSize ((CHAR8 *)EfiVarStoreInfo->Name) * sizeof (CHAR16));
+
+ NameSize = AsciiStrSize ((CHAR8 *)EfiVarStoreInfo->Name);
+ VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));
if (VarStoreName == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
- AsciiStrToUnicodeStr ((CHAR8 *) EfiVarStoreInfo->Name, VarStoreName);
+ AsciiStrToUnicodeStrS ((CHAR8 *) EfiVarStoreInfo->Name, VarStoreName, NameSize);
Status = gRT->GetVariable (VarStoreName, &EfiVarStoreInfo->Guid, NULL, &BufferSize, NULL);
@@ -4041,6 +4051,7 @@ RouteConfigRespForEfiVarStore (
{
EFI_STATUS Status;
EFI_STRING VarStoreName;
+ UINTN NameSize;
UINT8 *VarStore;
UINTN BufferSize;
UINTN BlockSize;
@@ -4050,12 +4061,13 @@ RouteConfigRespForEfiVarStore (
VarStore = NULL;
VarStoreName = NULL;
- VarStoreName = AllocateZeroPool (AsciiStrSize ((CHAR8 *)EfiVarStoreInfo->Name) * sizeof (CHAR16));
+ NameSize = AsciiStrSize ((CHAR8 *)EfiVarStoreInfo->Name);
+ VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));
if (VarStoreName == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
- AsciiStrToUnicodeStr ((CHAR8 *) EfiVarStoreInfo->Name, VarStoreName);
+ AsciiStrToUnicodeStrS ((CHAR8 *) EfiVarStoreInfo->Name, VarStoreName, NameSize);
Status = gRT->GetVariable (VarStoreName, &EfiVarStoreInfo->Guid, NULL, &BufferSize, NULL);
if (Status != EFI_BUFFER_TOO_SMALL) {