MdePkg: Add DECLARE_LENGTH opcode of dependency expression

To avoid messy parsing of the Depex section of a Capsule, it would
be a lot easier for everyone involved if we preceded the Capsule Depex
Section with a length declaration. It provides simple bounds checking
to avoid having to parse the op-codes, but in the case of a malformed
depex being parsed, avoid other issues which can be messy.

REF: UEFI spec 2.10 Table 23.4

Signed-off-by: Yi Li <yi1.li@intel.com>

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Reviewed-by: Wei6 Xu <wei6.xu@intel.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
This commit is contained in:
Yi Li 2023-12-19 11:11:43 +08:00 committed by mergify[bot]
parent 9d3fe85fcc
commit 00bf6890a9
1 changed files with 15 additions and 14 deletions

View File

@ -30,20 +30,21 @@ typedef struct _EFI_FIRMWARE_MANAGEMENT_PROTOCOL EFI_FIRMWARE_MANAGEMENT_PROTOCO
///
/// Dependency Expression Opcode
///
#define EFI_FMP_DEP_PUSH_GUID 0x00
#define EFI_FMP_DEP_PUSH_VERSION 0x01
#define EFI_FMP_DEP_VERSION_STR 0x02
#define EFI_FMP_DEP_AND 0x03
#define EFI_FMP_DEP_OR 0x04
#define EFI_FMP_DEP_NOT 0x05
#define EFI_FMP_DEP_TRUE 0x06
#define EFI_FMP_DEP_FALSE 0x07
#define EFI_FMP_DEP_EQ 0x08
#define EFI_FMP_DEP_GT 0x09
#define EFI_FMP_DEP_GTE 0x0A
#define EFI_FMP_DEP_LT 0x0B
#define EFI_FMP_DEP_LTE 0x0C
#define EFI_FMP_DEP_END 0x0D
#define EFI_FMP_DEP_PUSH_GUID 0x00
#define EFI_FMP_DEP_PUSH_VERSION 0x01
#define EFI_FMP_DEP_VERSION_STR 0x02
#define EFI_FMP_DEP_AND 0x03
#define EFI_FMP_DEP_OR 0x04
#define EFI_FMP_DEP_NOT 0x05
#define EFI_FMP_DEP_TRUE 0x06
#define EFI_FMP_DEP_FALSE 0x07
#define EFI_FMP_DEP_EQ 0x08
#define EFI_FMP_DEP_GT 0x09
#define EFI_FMP_DEP_GTE 0x0A
#define EFI_FMP_DEP_LT 0x0B
#define EFI_FMP_DEP_LTE 0x0C
#define EFI_FMP_DEP_END 0x0D
#define EFI_FMP_DEP_DECLARE_LENGTH 0x0E
///
/// Image Attribute - Dependency