mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-28 16:14:04 +02:00
BaseTools/GenVtf: Avoid possible NULL pointer dereference
Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
parent
248fce0329
commit
90114c101f
@ -1125,6 +1125,7 @@ Returns:
|
|||||||
EFI_ABORTED - Aborted due to one of the many reasons like:
|
EFI_ABORTED - Aborted due to one of the many reasons like:
|
||||||
(a) Component Size greater than the specified size.
|
(a) Component Size greater than the specified size.
|
||||||
(b) Error opening files.
|
(b) Error opening files.
|
||||||
|
(c) Fail to get the FIT table address.
|
||||||
|
|
||||||
EFI_INVALID_PARAMETER Value returned from call to UpdateEntryPoint()
|
EFI_INVALID_PARAMETER Value returned from call to UpdateEntryPoint()
|
||||||
EFI_OUT_OF_RESOURCES Memory allocation failure.
|
EFI_OUT_OF_RESOURCES Memory allocation failure.
|
||||||
@ -1240,6 +1241,10 @@ Returns:
|
|||||||
}
|
}
|
||||||
|
|
||||||
GetNextAvailableFitPtr (&CompFitPtr);
|
GetNextAvailableFitPtr (&CompFitPtr);
|
||||||
|
if (CompFitPtr == NULL) {
|
||||||
|
free (Buffer);
|
||||||
|
return EFI_ABORTED;
|
||||||
|
}
|
||||||
|
|
||||||
CompFitPtr->CompAddress = CompStartAddress | IPF_CACHE_BIT;
|
CompFitPtr->CompAddress = CompStartAddress | IPF_CACHE_BIT;
|
||||||
if ((FileSize % 16) != 0) {
|
if ((FileSize % 16) != 0) {
|
||||||
@ -2652,6 +2657,7 @@ Returns:
|
|||||||
}
|
}
|
||||||
SymFileName = VTF_SYM_FILE;
|
SymFileName = VTF_SYM_FILE;
|
||||||
} else {
|
} else {
|
||||||
|
assert (OutFileName1);
|
||||||
INTN OutFileNameLen = strlen(OutFileName1);
|
INTN OutFileNameLen = strlen(OutFileName1);
|
||||||
INTN NewIndex;
|
INTN NewIndex;
|
||||||
|
|
||||||
@ -2665,6 +2671,10 @@ Returns:
|
|||||||
} else {
|
} else {
|
||||||
INTN SymFileNameLen = NewIndex + 1 + strlen(VTF_SYM_FILE);
|
INTN SymFileNameLen = NewIndex + 1 + strlen(VTF_SYM_FILE);
|
||||||
SymFileName = malloc(SymFileNameLen + 1);
|
SymFileName = malloc(SymFileNameLen + 1);
|
||||||
|
if (SymFileName == NULL) {
|
||||||
|
Error (NULL, 0, 4001, "Resource", "memory cannot be allocated!");
|
||||||
|
goto ERROR;
|
||||||
|
}
|
||||||
memcpy(SymFileName, OutFileName1, NewIndex + 1);
|
memcpy(SymFileName, OutFileName1, NewIndex + 1);
|
||||||
memcpy(SymFileName + NewIndex + 1, VTF_SYM_FILE, strlen(VTF_SYM_FILE));
|
memcpy(SymFileName + NewIndex + 1, VTF_SYM_FILE, strlen(VTF_SYM_FILE));
|
||||||
SymFileName[SymFileNameLen] = '\0';
|
SymFileName[SymFileNameLen] = '\0';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user