BootLiquor: Fix memory corruption

This commit is contained in:
vit9696 2020-03-07 18:28:27 +03:00
parent 47c4861763
commit 699e0d82be
2 changed files with 5 additions and 21 deletions

View File

@ -78,25 +78,6 @@ LoadImageFromStorage (
return Status;
}
RETURN_STATUS
LoadClickImageFromStorage (
IN OC_STORAGE_CONTEXT *Storage,
IN CONST CHAR16 *ImageFilePath,
OUT GUI_CLICK_IMAGE *Image,
IN CONST EFI_GRAPHICS_OUTPUT_BLT_PIXEL *HighlightPixel
)
{
VOID *ImageData;
UINT32 ImageSize;
RETURN_STATUS Status;
ImageData = OcStorageReadFileUnicode (Storage, ImageFilePath, &ImageSize);
Status = GuiPngToClickImage (Image, ImageData, ImageSize, HighlightPixel);
FreePool(ImageData);
return Status;
}
RETURN_STATUS
InternalContextConstruct (
OUT BOOT_PICKER_GUI_CONTEXT *Context,

View File

@ -817,6 +817,9 @@ BootPickerEntriesEmpty (
ListEntry = mBootPicker.Hdr.Obj.Children.BackLink;
ASSERT (ListEntry == &mBootPickerSelector.Hdr.Link);
//
// Last entry is always the selector, which is special and cannot be freed.
//
ListEntry = ListEntry->BackLink;
while (!IsNull (&mBootPicker.Hdr.Obj.Children, ListEntry)) {
@ -825,10 +828,10 @@ BootPickerEntriesEmpty (
mBootPicker.Hdr.Obj.Width -= BOOT_ENTRY_WIDTH + BOOT_ENTRY_SPACE;
mBootPicker.Hdr.Obj.OffsetX += (BOOT_ENTRY_WIDTH + BOOT_ENTRY_SPACE) / 2;
ListEntry = NextEntry;
BootEntry = BASE_CR (ListEntry, GUI_VOLUME_ENTRY, Hdr.Link);
InternalBootPickerEntryDestruct (BootEntry);
ListEntry = NextEntry;
}
}