From e85e284e25f09c222fc838e6b298a91268f0b3ec Mon Sep 17 00:00:00 2001 From: Qiu Shumin Date: Wed, 1 Jul 2015 08:27:03 +0000 Subject: [PATCH] MdeModulePkg/Universal/PCD: Use safe string functions to refine code. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Qiu Shumin Reviewed-by: Star Zeng git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17786 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Universal/PCD/Dxe/Service.c | 8 +++++--- MdeModulePkg/Universal/PCD/Pei/Service.c | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/MdeModulePkg/Universal/PCD/Dxe/Service.c b/MdeModulePkg/Universal/PCD/Dxe/Service.c index cf5f2444f6..eb1e1cef0b 100644 --- a/MdeModulePkg/Universal/PCD/Dxe/Service.c +++ b/MdeModulePkg/Universal/PCD/Dxe/Service.c @@ -142,6 +142,7 @@ GetPcdName ( { PCD_DATABASE_INIT *Database; UINT8 *StringTable; + UINTN NameSize; PCD_NAME_INDEX *PcdNameIndex; CHAR8 *TokenSpaceName; CHAR8 *PcdName; @@ -188,14 +189,15 @@ GetPcdName ( // // Need to get the full PCD name. // - Name = AllocateZeroPool (AsciiStrSize (TokenSpaceName) + AsciiStrSize (PcdName)); + NameSize = AsciiStrSize (TokenSpaceName) + AsciiStrSize (PcdName); + Name = AllocateZeroPool (NameSize); ASSERT (Name != NULL); // // Catenate TokenSpaceCName and PcdCName with a '.' to form the full PCD name. // - AsciiStrCat (Name, TokenSpaceName); + AsciiStrCatS (Name, NameSize, TokenSpaceName); Name[AsciiStrSize (TokenSpaceName) - sizeof (CHAR8)] = '.'; - AsciiStrCat (Name, PcdName); + AsciiStrCatS (Name, NameSize, PcdName); } return Name; diff --git a/MdeModulePkg/Universal/PCD/Pei/Service.c b/MdeModulePkg/Universal/PCD/Pei/Service.c index 83309a6f39..45ce01b1fa 100644 --- a/MdeModulePkg/Universal/PCD/Pei/Service.c +++ b/MdeModulePkg/Universal/PCD/Pei/Service.c @@ -107,6 +107,7 @@ GetPcdName ( ) { UINT8 *StringTable; + UINTN NameSize; PCD_NAME_INDEX *PcdNameIndex; CHAR8 *TokenSpaceName; CHAR8 *PcdName; @@ -144,14 +145,15 @@ GetPcdName ( // // Need to get the full PCD name. // - Name = AllocateZeroPool (AsciiStrSize (TokenSpaceName) + AsciiStrSize (PcdName)); + NameSize = AsciiStrSize (TokenSpaceName) + AsciiStrSize (PcdName); + Name = AllocateZeroPool (NameSize); ASSERT (Name != NULL); // // Catenate TokenSpaceCName and PcdCName with a '.' to form the full PCD name. // - AsciiStrCat (Name, TokenSpaceName); + AsciiStrCatS (Name, NameSize, TokenSpaceName); Name[AsciiStrSize (TokenSpaceName) - sizeof (CHAR8)] = '.'; - AsciiStrCat (Name, PcdName); + AsciiStrCatS (Name, NameSize, PcdName); } return Name; -- 2.39.2