ArmPkg/SemihostFs: eliminate calls to deprecated string functions

Remove calls to deprecated string functions like AsciiStrCpy() and
UnicodeStrToAsciiStr()

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Ryan Harkin <ryan.harkin@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
This commit is contained in:
Ard Biesheuvel 2016-10-24 16:30:48 +01:00
parent 9fbbbd1222
commit f6c4d99ae4
1 changed files with 12 additions and 8 deletions

View File

@ -207,11 +207,12 @@ FileOpen (
return EFI_WRITE_PROTECTED; return EFI_WRITE_PROTECTED;
} }
AsciiFileName = AllocatePool (StrLen (FileName) + 1); Length = StrLen (FileName) + 1;
AsciiFileName = AllocatePool (Length);
if (AsciiFileName == NULL) { if (AsciiFileName == NULL) {
return EFI_OUT_OF_RESOURCES; return EFI_OUT_OF_RESOURCES;
} }
UnicodeStrToAsciiStr (FileName, AsciiFileName); UnicodeStrToAsciiStrS (FileName, AsciiFileName, Length);
// Opening '/', '\', '.', or the NULL pathname is trying to open the root directory // Opening '/', '\', '.', or the NULL pathname is trying to open the root directory
if ((AsciiStrCmp (AsciiFileName, "\\") == 0) || if ((AsciiStrCmp (AsciiFileName, "\\") == 0) ||
@ -463,7 +464,7 @@ FileDelete (
NameSize = AsciiStrLen (Fcb->FileName); NameSize = AsciiStrLen (Fcb->FileName);
FileName = AllocatePool (NameSize + 1); FileName = AllocatePool (NameSize + 1);
AsciiStrCpy (FileName, Fcb->FileName); AsciiStrCpyS (FileName, NameSize + 1, Fcb->FileName);
// Close the file if it's open. Disregard return status, // Close the file if it's open. Disregard return status,
// since it might give an error if the file isn't open. // since it might give an error if the file isn't open.
@ -828,8 +829,10 @@ GetFilesystemInfo (
EFI_FILE_SYSTEM_INFO *Info; EFI_FILE_SYSTEM_INFO *Info;
EFI_STATUS Status; EFI_STATUS Status;
UINTN ResultSize; UINTN ResultSize;
UINTN StringSize;
ResultSize = SIZE_OF_EFI_FILE_SYSTEM_INFO + StrSize (mSemihostFsLabel); StringSize = StrSize (mSemihostFsLabel);
ResultSize = SIZE_OF_EFI_FILE_SYSTEM_INFO + StringSize;
if (*BufferSize >= ResultSize) { if (*BufferSize >= ResultSize) {
ZeroMem (Buffer, ResultSize); ZeroMem (Buffer, ResultSize);
@ -843,7 +846,7 @@ GetFilesystemInfo (
Info->FreeSpace = 0; Info->FreeSpace = 0;
Info->BlockSize = 0; Info->BlockSize = 0;
StrCpy (Info->VolumeLabel, mSemihostFsLabel); CopyMem (Info->VolumeLabel, mSemihostFsLabel, StringSize);
} else { } else {
Status = EFI_BUFFER_TOO_SMALL; Status = EFI_BUFFER_TOO_SMALL;
} }
@ -903,7 +906,7 @@ FileGetInfo (
ResultSize = StrSize (mSemihostFsLabel); ResultSize = StrSize (mSemihostFsLabel);
if (*BufferSize >= ResultSize) { if (*BufferSize >= ResultSize) {
StrCpy (Buffer, mSemihostFsLabel); CopyMem (Buffer, mSemihostFsLabel, ResultSize);
Status = EFI_SUCCESS; Status = EFI_SUCCESS;
} else { } else {
Status = EFI_BUFFER_TOO_SMALL; Status = EFI_BUFFER_TOO_SMALL;
@ -963,11 +966,12 @@ SetFileInfo (
return EFI_ACCESS_DENIED; return EFI_ACCESS_DENIED;
} }
AsciiFileName = AllocatePool (StrLen (Info->FileName) + 1); Length = StrLen (Info->FileName) + 1;
AsciiFileName = AllocatePool (Length);
if (AsciiFileName == NULL) { if (AsciiFileName == NULL) {
return EFI_OUT_OF_RESOURCES; return EFI_OUT_OF_RESOURCES;
} }
UnicodeStrToAsciiStr (Info->FileName, AsciiFileName); UnicodeStrToAsciiStrS (Info->FileName, AsciiFileName, Length);
FileSizeIsDifferent = (Info->FileSize != Fcb->Info.FileSize); FileSizeIsDifferent = (Info->FileSize != Fcb->Info.FileSize);
FileNameIsDifferent = (AsciiStrCmp (AsciiFileName, Fcb->FileName) != 0); FileNameIsDifferent = (AsciiStrCmp (AsciiFileName, Fcb->FileName) != 0);