Refine code to make code run more safely.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11006 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
ydong10 2010-11-05 06:28:33 +00:00
parent 5475cd7e6f
commit fc48db0da0
1 changed files with 15 additions and 5 deletions

View File

@ -50,7 +50,7 @@ GatherStatistics(
MEASUREMENT_RECORD Measurement; MEASUREMENT_RECORD Measurement;
UINT64 Duration; UINT64 Duration;
UINTN LogEntryKey; UINTN LogEntryKey;
UINTN TIndex; INTN TIndex;
LogEntryKey = 0; LogEntryKey = 0;
while ((LogEntryKey = GetPerformanceMeasurement ( while ((LogEntryKey = GetPerformanceMeasurement (
@ -143,11 +143,14 @@ DumpAllTrace(
// Get Handle information // Get Handle information
// //
Size = 0; Size = 0;
HandleBuffer = NULL; HandleBuffer = &TempHandle;
Status = gBS->LocateHandle (AllHandles, NULL, NULL, &Size, &TempHandle); Status = gBS->LocateHandle (AllHandles, NULL, NULL, &Size, &TempHandle);
if (Status == EFI_BUFFER_TOO_SMALL) { if (Status == EFI_BUFFER_TOO_SMALL) {
HandleBuffer = AllocatePool (Size); HandleBuffer = AllocatePool (Size);
ASSERT (HandleBuffer != NULL); ASSERT (HandleBuffer != NULL);
if (HandleBuffer == NULL) {
return;
}
Status = gBS->LocateHandle (AllHandles, NULL, NULL, &Size, HandleBuffer); Status = gBS->LocateHandle (AllHandles, NULL, NULL, &Size, HandleBuffer);
} }
if (EFI_ERROR (Status)) { if (EFI_ERROR (Status)) {
@ -222,7 +225,9 @@ DumpAllTrace(
); );
} }
} }
if (HandleBuffer != &TempHandle) {
FreePool (HandleBuffer); FreePool (HandleBuffer);
}
} }
/** Gather and print Raw Trace Records. /** Gather and print Raw Trace Records.
@ -457,11 +462,14 @@ ProcessHandles(
(StringPtr == NULL) ? ALit_UNKNOWN: StringPtr); (StringPtr == NULL) ? ALit_UNKNOWN: StringPtr);
Size = 0; Size = 0;
HandleBuffer = NULL; HandleBuffer = &TempHandle;
Status = gBS->LocateHandle (AllHandles, NULL, NULL, &Size, &TempHandle); Status = gBS->LocateHandle (AllHandles, NULL, NULL, &Size, &TempHandle);
if (Status == EFI_BUFFER_TOO_SMALL) { if (Status == EFI_BUFFER_TOO_SMALL) {
HandleBuffer = AllocatePool (Size); HandleBuffer = AllocatePool (Size);
ASSERT (HandleBuffer != NULL); ASSERT (HandleBuffer != NULL);
if (HandleBuffer == NULL) {
return;
}
Status = gBS->LocateHandle (AllHandles, NULL, NULL, &Size, HandleBuffer); Status = gBS->LocateHandle (AllHandles, NULL, NULL, &Size, HandleBuffer);
} }
if (EFI_ERROR (Status)) { if (EFI_ERROR (Status)) {
@ -520,7 +528,9 @@ ProcessHandles(
} }
} }
} }
if (HandleBuffer != &TempHandle) {
FreePool (HandleBuffer); FreePool (HandleBuffer);
}
return Status; return Status;
} }