diff options
| author | Tom Rini <[email protected]> | 2021-02-15 19:19:56 -0500 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2021-02-15 22:31:54 -0500 |
| commit | b6f4c757959f8850e1299a77c8e5713da78e8ec0 (patch) | |
| tree | 2de8580b23f833e100a186448625721d71625521 /include | |
| parent | 6144438fb5c9059dc87cf219bed0c992f70b3509 (diff) | |
| parent | 3f04db891a353f4b127ed57279279f851c6b4917 (diff) | |
Merge branch '2021-02-15-fix-CVE-2021-27097-CVE-2021-27138'
Fix CVE-2021-27097 and CVE-2021-27138. For more details see
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27097 and
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27138
Diffstat (limited to 'include')
| -rw-r--r-- | include/image.h | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/include/image.h b/include/image.h index 856bc3e1b29..d5a940313a6 100644 --- a/include/image.h +++ b/include/image.h @@ -134,6 +134,9 @@ extern ulong image_load_addr; /* Default Load Address */ extern ulong image_save_addr; /* Default Save Address */ extern ulong image_save_size; /* Default Save Size */ +/* An invalid size, meaning that the image size is not known */ +#define IMAGE_SIZE_INVAL (-1UL) + enum ih_category { IH_ARCH, IH_COMP, @@ -1142,7 +1145,23 @@ int fit_image_check_os(const void *fit, int noffset, uint8_t os); int fit_image_check_arch(const void *fit, int noffset, uint8_t arch); int fit_image_check_type(const void *fit, int noffset, uint8_t type); int fit_image_check_comp(const void *fit, int noffset, uint8_t comp); -int fit_check_format(const void *fit); + +/** + * fit_check_format() - Check that the FIT is valid + * + * This performs various checks on the FIT to make sure it is suitable for + * use, looking for mandatory properties, nodes, etc. + * + * If FIT_FULL_CHECK is enabled, it also runs it through libfdt to make + * sure that there are no strange tags or broken nodes in the FIT. + * + * @fit: pointer to the FIT format image header + * @return 0 if OK, -ENOEXEC if not an FDT file, -EINVAL if the full FDT check + * failed (e.g. due to bad structure), -ENOMSG if the description is + * missing, -ENODATA if the timestamp is missing, -ENOENT if the /images + * path is missing + */ +int fit_check_format(const void *fit, ulong size); int fit_conf_find_compat(const void *fit, const void *fdt); |
