mirror of https://github.com/acidanthera/audk.git
EmbeddedPkg/EfiFileLib: eliminate deprecated string function calls
Get rid of calls to unsafe string functions. These are deprecated and may be removed in the future. 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>
This commit is contained in:
parent
5140a6dfb9
commit
e2dede1bc4
|
@ -384,9 +384,10 @@ EblFileDevicePath (
|
||||||
|
|
||||||
|
|
||||||
if ( *FileName != 0 ) {
|
if ( *FileName != 0 ) {
|
||||||
AsciiStrToUnicodeStr (FileName, UnicodeFileName);
|
AsciiStrToUnicodeStrS (FileName, UnicodeFileName,
|
||||||
|
ARRAY_SIZE (UnicodeFileName));
|
||||||
} else {
|
} else {
|
||||||
AsciiStrToUnicodeStr ("\\", UnicodeFileName);
|
AsciiStrToUnicodeStrS ("\\", UnicodeFileName, ARRAY_SIZE (UnicodeFileName));
|
||||||
}
|
}
|
||||||
|
|
||||||
Size = StrSize (UnicodeFileName);
|
Size = StrSize (UnicodeFileName);
|
||||||
|
@ -589,7 +590,7 @@ EblFvFileDevicePath (
|
||||||
&AuthenticationStatus
|
&AuthenticationStatus
|
||||||
);
|
);
|
||||||
if (!EFI_ERROR (Status)) {
|
if (!EFI_ERROR (Status)) {
|
||||||
UnicodeStrToAsciiStr (Section, AsciiSection);
|
UnicodeStrToAsciiStrS (Section, AsciiSection, MAX_PATHNAME);
|
||||||
if (AsciiStriCmp (FileName, AsciiSection) == 0) {
|
if (AsciiStriCmp (FileName, AsciiSection) == 0) {
|
||||||
FreePool (Section);
|
FreePool (Section);
|
||||||
break;
|
break;
|
||||||
|
@ -674,6 +675,7 @@ EfiOpen (
|
||||||
CHAR8 *CwdPlusPathName;
|
CHAR8 *CwdPlusPathName;
|
||||||
UINTN Index;
|
UINTN Index;
|
||||||
EFI_SECTION_TYPE ModifiedSectionType;
|
EFI_SECTION_TYPE ModifiedSectionType;
|
||||||
|
UINTN AsciiLength;
|
||||||
|
|
||||||
EblUpdateDeviceLists ();
|
EblUpdateDeviceLists ();
|
||||||
|
|
||||||
|
@ -706,7 +708,8 @@ EfiOpen (
|
||||||
}
|
}
|
||||||
|
|
||||||
// We could add a current working directory concept
|
// We could add a current working directory concept
|
||||||
CwdPlusPathName = AllocatePool (AsciiStrSize (gCwd) + AsciiStrSize (PathName));
|
AsciiLength = AsciiStrSize (gCwd) + AsciiStrSize (PathName);
|
||||||
|
CwdPlusPathName = AllocatePool (AsciiLength);
|
||||||
if (CwdPlusPathName == NULL) {
|
if (CwdPlusPathName == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -723,14 +726,14 @@ EfiOpen (
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
AsciiStrCpy (CwdPlusPathName, gCwd);
|
AsciiStrCpyS (CwdPlusPathName, AsciiLength, gCwd);
|
||||||
StrLen = AsciiStrLen (gCwd);
|
StrLen = AsciiStrLen (gCwd);
|
||||||
if ((*PathName != '/') && (*PathName != '\\') && (gCwd[StrLen-1] != '/') && (gCwd[StrLen-1] != '\\')) {
|
if ((*PathName != '/') && (*PathName != '\\') && (gCwd[StrLen-1] != '/') && (gCwd[StrLen-1] != '\\')) {
|
||||||
AsciiStrCat (CwdPlusPathName, "\\");
|
AsciiStrCatS (CwdPlusPathName, AsciiLength, "\\");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
AsciiStrCat (CwdPlusPathName, PathName);
|
AsciiStrCatS (CwdPlusPathName, AsciiLength, PathName);
|
||||||
if (AsciiStrStr (CwdPlusPathName, ":") == NULL) {
|
if (AsciiStrStr (CwdPlusPathName, ":") == NULL) {
|
||||||
// Extra error check to make sure we don't recurse and blow stack
|
// Extra error check to make sure we don't recurse and blow stack
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -745,7 +748,7 @@ EfiOpen (
|
||||||
}
|
}
|
||||||
|
|
||||||
File->DeviceName = AllocatePool (StrLen);
|
File->DeviceName = AllocatePool (StrLen);
|
||||||
AsciiStrCpy (File->DeviceName, PathName);
|
AsciiStrCpyS (File->DeviceName, StrLen, PathName);
|
||||||
File->DeviceName[FileStart - 1] = '\0';
|
File->DeviceName[FileStart - 1] = '\0';
|
||||||
File->FileName = &File->DeviceName[FileStart];
|
File->FileName = &File->DeviceName[FileStart];
|
||||||
if (File->FileName[0] == '\0') {
|
if (File->FileName[0] == '\0') {
|
||||||
|
@ -1611,7 +1614,7 @@ ExpandPath (
|
||||||
{
|
{
|
||||||
CHAR8 *NewPath;
|
CHAR8 *NewPath;
|
||||||
CHAR8 *Work, *Start, *End;
|
CHAR8 *Work, *Start, *End;
|
||||||
UINTN StrLen;
|
UINTN StrLen, AllocLen;
|
||||||
INTN i;
|
INTN i;
|
||||||
|
|
||||||
if (Cwd == NULL || Path == NULL) {
|
if (Cwd == NULL || Path == NULL) {
|
||||||
|
@ -1625,11 +1628,12 @@ ExpandPath (
|
||||||
}
|
}
|
||||||
|
|
||||||
StrLen = AsciiStrSize (Path);
|
StrLen = AsciiStrSize (Path);
|
||||||
NewPath = AllocatePool (AsciiStrSize (Cwd) + StrLen + 1);
|
AllocLen = AsciiStrSize (Cwd) + StrLen + 1;
|
||||||
|
NewPath = AllocatePool (AllocLen);
|
||||||
if (NewPath == NULL) {
|
if (NewPath == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
AsciiStrCpy (NewPath, Cwd);
|
AsciiStrCpyS (NewPath, AllocLen, Cwd);
|
||||||
|
|
||||||
End = Path + StrLen;
|
End = Path + StrLen;
|
||||||
for (Start = Path ;;) {
|
for (Start = Path ;;) {
|
||||||
|
@ -1640,7 +1644,7 @@ ExpandPath (
|
||||||
}
|
}
|
||||||
|
|
||||||
// append path prior to ..
|
// append path prior to ..
|
||||||
AsciiStrnCat (NewPath, Start, Work - Start);
|
AsciiStrnCatS (NewPath, AllocLen, Start, Work - Start);
|
||||||
StrLen = AsciiStrLen (NewPath);
|
StrLen = AsciiStrLen (NewPath);
|
||||||
for (i = StrLen; i >= 0; i--) {
|
for (i = StrLen; i >= 0; i--) {
|
||||||
if (NewPath[i] == ':') {
|
if (NewPath[i] == ':') {
|
||||||
|
@ -1663,7 +1667,7 @@ ExpandPath (
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle the path that remains after the ..
|
// Handle the path that remains after the ..
|
||||||
AsciiStrnCat (NewPath, Start, End - Start);
|
AsciiStrnCatS (NewPath, AllocLen, Start, End - Start);
|
||||||
|
|
||||||
return NewPath;
|
return NewPath;
|
||||||
}
|
}
|
||||||
|
@ -1686,7 +1690,7 @@ EfiSetCwd (
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
EFI_OPEN_FILE *File;
|
EFI_OPEN_FILE *File;
|
||||||
UINTN Len;
|
UINTN Len, AllocLen;
|
||||||
CHAR8 *Path;
|
CHAR8 *Path;
|
||||||
|
|
||||||
if (Cwd == NULL) {
|
if (Cwd == NULL) {
|
||||||
|
@ -1729,17 +1733,18 @@ EfiSetCwd (
|
||||||
|
|
||||||
// Use the info returned from EfiOpen as it can add in CWD if needed. So Cwd could be
|
// Use the info returned from EfiOpen as it can add in CWD if needed. So Cwd could be
|
||||||
// relative to the current gCwd or not.
|
// relative to the current gCwd or not.
|
||||||
gCwd = AllocatePool (AsciiStrSize (File->DeviceName) + AsciiStrSize (File->FileName) + 10);
|
AllocLen = AsciiStrSize (File->DeviceName) + AsciiStrSize (File->FileName) + 10;
|
||||||
|
gCwd = AllocatePool (AllocLen);
|
||||||
if (gCwd == NULL) {
|
if (gCwd == NULL) {
|
||||||
return EFI_INVALID_PARAMETER;
|
return EFI_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
|
|
||||||
AsciiStrCpy (gCwd, File->DeviceName);
|
AsciiStrCpyS (gCwd, AllocLen, File->DeviceName);
|
||||||
if (File->FileName == NULL) {
|
if (File->FileName == NULL) {
|
||||||
AsciiStrCat (gCwd, ":\\");
|
AsciiStrCatS (gCwd, AllocLen, ":\\");
|
||||||
} else {
|
} else {
|
||||||
AsciiStrCat (gCwd, ":");
|
AsciiStrCatS (gCwd, AllocLen, ":");
|
||||||
AsciiStrCat (gCwd, File->FileName);
|
AsciiStrCatS (gCwd, AllocLen, File->FileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue