mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
efi_loader: QueryMode() must allocate buffer
EFI_GRAPHICS_OUTPUT_PROTOCOL.QueryMode() must allocate a buffer for the mode information structure. Adjust the unit test to free the buffer. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
parent
1f7a8b3389
commit
97cf20861a
2 changed files with 10 additions and 1 deletions
|
@ -51,8 +51,12 @@ static efi_status_t EFIAPI gop_query_mode(struct efi_gop *this, u32 mode_number,
|
|||
}
|
||||
|
||||
gopobj = container_of(this, struct efi_gop_obj, ops);
|
||||
ret = efi_allocate_pool(EFI_BOOT_SERVICES_DATA, sizeof(gopobj->info),
|
||||
(void **)info);
|
||||
if (ret != EFI_SUCCESS)
|
||||
goto out;
|
||||
*size_of_info = sizeof(gopobj->info);
|
||||
*info = &gopobj->info;
|
||||
memcpy(*info, &gopobj->info, sizeof(gopobj->info));
|
||||
|
||||
out:
|
||||
return EFI_EXIT(ret);
|
||||
|
|
|
@ -80,6 +80,11 @@ static int execute(void)
|
|||
}
|
||||
efi_st_printf("Mode %u: %u x %u\n",
|
||||
i, info->width, info->height);
|
||||
ret = boottime->free_pool(info);
|
||||
if (ret != EFI_SUCCESS) {
|
||||
efi_st_printf("FreePool failed");
|
||||
return EFI_ST_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
return EFI_ST_SUCCESS;
|
||||
|
|
Loading…
Reference in a new issue