mirror of https://github.com/acidanthera/audk.git
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:
|
||||
(a) Component Size greater than the specified size.
|
||||
(b) Error opening files.
|
||||
(c) Fail to get the FIT table address.
|
||||
|
||||
EFI_INVALID_PARAMETER Value returned from call to UpdateEntryPoint()
|
||||
EFI_OUT_OF_RESOURCES Memory allocation failure.
|
||||
|
@ -1240,6 +1241,10 @@ Returns:
|
|||
}
|
||||
|
||||
GetNextAvailableFitPtr (&CompFitPtr);
|
||||
if (CompFitPtr == NULL) {
|
||||
free (Buffer);
|
||||
return EFI_ABORTED;
|
||||
}
|
||||
|
||||
CompFitPtr->CompAddress = CompStartAddress | IPF_CACHE_BIT;
|
||||
if ((FileSize % 16) != 0) {
|
||||
|
@ -2652,6 +2657,7 @@ Returns:
|
|||
}
|
||||
SymFileName = VTF_SYM_FILE;
|
||||
} else {
|
||||
assert (OutFileName1);
|
||||
INTN OutFileNameLen = strlen(OutFileName1);
|
||||
INTN NewIndex;
|
||||
|
||||
|
@ -2665,6 +2671,10 @@ Returns:
|
|||
} else {
|
||||
INTN SymFileNameLen = NewIndex + 1 + strlen(VTF_SYM_FILE);
|
||||
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 + NewIndex + 1, VTF_SYM_FILE, strlen(VTF_SYM_FILE));
|
||||
SymFileName[SymFileNameLen] = '\0';
|
||||
|
|
Loading…
Reference in New Issue