mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-23 13:36:05 +00:00
Updated optee_utils.c to fix ARM-software/tf-issues#603 related to the tee-validate-header bug. Minor updates to the header valid checking logic. It would never make sense to have less than 1 image to load so this is now checked. Changed OPTEE_MAX_IMAGE_NUM to OPTEE_MAX_NUM_IMAGES to clarify its definition. OPTEE_MAX_IMAGE_NUM sounds like an ID assigned to the last image to load. OPTEE_MAX_NUM_IMAGES sounds like the maximum number of images to load. Signed-off-by: Nathan Menhorn <nathan.menhorn@xilinx.com>
This commit is contained in:
parent
9ceda8b907
commit
b554e76829
1 changed files with 15 additions and 8 deletions
|
@ -25,14 +25,15 @@ typedef struct optee_image {
|
||||||
|
|
||||||
#define OPTEE_PAGER_IMAGE_ID 0
|
#define OPTEE_PAGER_IMAGE_ID 0
|
||||||
#define OPTEE_PAGED_IMAGE_ID 1
|
#define OPTEE_PAGED_IMAGE_ID 1
|
||||||
#define OPTEE_MAX_IMAGE_NUM 2
|
|
||||||
|
#define OPTEE_MAX_NUM_IMAGES 2u
|
||||||
|
|
||||||
#define TEE_MAGIC_NUM_OPTEE 0x4554504f
|
#define TEE_MAGIC_NUM_OPTEE 0x4554504f
|
||||||
/*
|
/*
|
||||||
* magic: header magic number.
|
* magic: header magic number.
|
||||||
* version: OPTEE header version:
|
* version: OPTEE header version:
|
||||||
* 1 - not supported
|
* 1 - not supported
|
||||||
* 2 - supported
|
* 2 - supported
|
||||||
* arch: OPTEE os architecture type: 0 - AARCH32, 1 - AARCH64.
|
* arch: OPTEE os architecture type: 0 - AARCH32, 1 - AARCH64.
|
||||||
* flags: unused currently.
|
* flags: unused currently.
|
||||||
* nb_images: number of images.
|
* nb_images: number of images.
|
||||||
|
@ -53,14 +54,20 @@ typedef struct optee_header {
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
static inline int tee_validate_header(optee_header_t *header)
|
static inline int tee_validate_header(optee_header_t *header)
|
||||||
{
|
{
|
||||||
|
int valid = 0;
|
||||||
|
|
||||||
if ((header->magic == TEE_MAGIC_NUM_OPTEE) &&
|
if ((header->magic == TEE_MAGIC_NUM_OPTEE) &&
|
||||||
(header->version == 2) &&
|
(header->version == 2u) &&
|
||||||
(header->nb_images <= OPTEE_MAX_IMAGE_NUM)) {
|
(header->nb_images > 0u) &&
|
||||||
return 1;
|
(header->nb_images <= OPTEE_MAX_NUM_IMAGES)) {
|
||||||
|
valid = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
WARN("Not a known TEE, use default loading options.\n");
|
else {
|
||||||
return 0;
|
WARN("Not a known TEE, use default loading options.\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
return valid;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
|
|
Loading…
Add table
Reference in a new issue