ArmPlatformPkg/BootMonFs: eliminate deprecated string functions

Get rid of functions that are no longer available when defining
DISABLE_NEW_DEPRECATED_INTERFACES

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
diff --git a/ArmPlatformPkg/FileSystem/BootMonFs/BootMonFsDir.c b/ArmPlatformPkg/FileSystem/BootMonFs/BootMonFsDir.c
index 450a707..64ea0ec 100644
--- a/ArmPlatformPkg/FileSystem/BootMonFs/BootMonFsDir.c
+++ b/ArmPlatformPkg/FileSystem/BootMonFs/BootMonFsDir.c
@@ -304,7 +304,6 @@
   IN  CONST CHAR16         *FileName

   )

 {

-  CHAR16           TruncFileName[MAX_NAME_LENGTH];

   CHAR8            AsciiFileName[MAX_NAME_LENGTH];

   BOOTMON_FS_FILE  *SameFile;

 

@@ -314,9 +313,7 @@
     FileName++;

   }

 

-  StrnCpy (TruncFileName, FileName, MAX_NAME_LENGTH - 1);

-  TruncFileName[MAX_NAME_LENGTH - 1] = 0;

-  UnicodeStrToAsciiStr (TruncFileName, AsciiFileName);

+  UnicodeStrToAsciiStrS (FileName, AsciiFileName, MAX_NAME_LENGTH);

 

   if (BootMonGetFileFromAsciiFileName (

         File->Instance,

@@ -327,7 +324,8 @@
     return EFI_ACCESS_DENIED;

   } else {

     // OK, change the filename.

-    AsciiStrToUnicodeStr (AsciiFileName, File->Info->FileName);

+    AsciiStrToUnicodeStrS (AsciiFileName, File->Info->FileName,

+      (File->Info->Size - SIZE_OF_EFI_FILE_INFO) / sizeof (CHAR16));

     return EFI_SUCCESS;

   }

 }

diff --git a/ArmPlatformPkg/FileSystem/BootMonFs/BootMonFsEntryPoint.c b/ArmPlatformPkg/FileSystem/BootMonFs/BootMonFsEntryPoint.c
index 3d71760..a115085 100644
--- a/ArmPlatformPkg/FileSystem/BootMonFs/BootMonFsEntryPoint.c
+++ b/ArmPlatformPkg/FileSystem/BootMonFs/BootMonFsEntryPoint.c
@@ -98,7 +98,8 @@
   {

     FileEntry = BOOTMON_FS_FILE_FROM_LINK_THIS (Entry);

     if (FileEntry->Info != NULL) {

-      UnicodeStrToAsciiStr (FileEntry->Info->FileName, OpenFileAsciiFileName);

+      UnicodeStrToAsciiStrS (FileEntry->Info->FileName, OpenFileAsciiFileName,

+        MAX_NAME_LENGTH);

       AsciiFileNameToCompare = OpenFileAsciiFileName;

     } else {

       AsciiFileNameToCompare = FileEntry->HwDescription.Footer.Filename;

diff --git a/ArmPlatformPkg/FileSystem/BootMonFs/BootMonFsOpenClose.c b/ArmPlatformPkg/FileSystem/BootMonFs/BootMonFsOpenClose.c
index af2fe51..ae10055 100644
--- a/ArmPlatformPkg/FileSystem/BootMonFs/BootMonFsOpenClose.c
+++ b/ArmPlatformPkg/FileSystem/BootMonFs/BootMonFsOpenClose.c
@@ -101,7 +101,8 @@
   Description->Attributes = 1;

   Description->BlockStart = FileStart / BlockSize;

   Description->BlockEnd   = Description->BlockStart + (FileSize / BlockSize);

-  AsciiStrCpy (Description->Footer.Filename, FileName);

+  AsciiStrCpyS (Description->Footer.Filename,

+    sizeof Description->Footer.Filename, FileName);

 

 #ifdef MDE_CPU_ARM

   Description->Footer.Offset  = HW_IMAGE_FOOTER_OFFSET;

@@ -294,7 +295,7 @@
   DiskIo    = Instance->DiskIo;

   BlockSize = Media->BlockSize;

 

-  UnicodeStrToAsciiStr (Info->FileName, AsciiFileName);

+  UnicodeStrToAsciiStrS (Info->FileName, AsciiFileName, MAX_NAME_LENGTH);

 

   // If the file doesn't exist then find a space for it

   if (File->HwDescription.RegionCount == 0) {

@@ -513,6 +514,7 @@
   CHAR16               *Separator;

   CHAR8                *AsciiFileName;

   EFI_FILE_INFO        *Info;

+  UINTN                AsciiFileNameSize;

 

   if (This == NULL) {

     return EFI_INVALID_PARAMETER;

@@ -621,15 +623,16 @@
   //

   // BootMonFs interface requires ASCII filenames

   //

-  AsciiFileName = AllocatePool (StrLen (Path) + 1);

+  AsciiFileNameSize = StrLen (Path) + 1;

+  if (AsciiFileNameSize > MAX_NAME_LENGTH) {

+    AsciiFileNameSize = MAX_NAME_LENGTH;

+  }

+  AsciiFileName = AllocatePool (AsciiFileNameSize);

   if (AsciiFileName == NULL) {

     Status = EFI_OUT_OF_RESOURCES;

     goto Error;

   }

-  UnicodeStrToAsciiStr (Path, AsciiFileName);

-  if (AsciiStrSize (AsciiFileName) > MAX_NAME_LENGTH) {

-   AsciiFileName[MAX_NAME_LENGTH - 1] = '\0';

-  }

+  UnicodeStrToAsciiStrS (Path, AsciiFileName, AsciiFileNameSize);

 

   if ((AsciiFileName[0] == '\0') ||

       (AsciiFileName[0] == '.' )    ) {

@@ -688,7 +691,7 @@
 

     Info->FileSize     = BootMonFsGetImageLength (File);

     Info->PhysicalSize = BootMonFsGetPhysicalSize (File);

-    AsciiStrToUnicodeStr (AsciiFileName, Info->FileName);

+    AsciiStrToUnicodeStrS (AsciiFileName, Info->FileName, MAX_NAME_LENGTH);

 

     File->Info = Info;

     Info = NULL;