[PATCH u-boot v2019.04-aspeed-openbmc 7/7] image-fit: fit_check_format check for valid FDT
Joel Stanley
joel at jms.id.au
Thu Jan 28 21:53:04 AEDT 2021
From: Heinrich Schuchardt <xypron.glpk at gmx.de>
fit_check_format() must check that the buffer contains a flattened device
tree before calling any device tree library functions.
Failure to do may cause segmentation faults.
Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
(cherry picked from commit ea1a9ec5f430359720d9a0621ed1acfbba6a142a)
Signed-off-by: Joel Stanley <joel at jms.id.au>
---
common/image-fit.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/common/image-fit.c b/common/image-fit.c
index be4d9dc9c3b1..e64949dfa73d 100644
--- a/common/image-fit.c
+++ b/common/image-fit.c
@@ -1473,6 +1473,12 @@ int fit_image_check_comp(const void *fit, int noffset, uint8_t comp)
*/
int fit_check_format(const void *fit)
{
+ /* A FIT image must be a valid FDT */
+ if (fdt_check_header(fit)) {
+ debug("Wrong FIT format: not a flattened device tree\n");
+ return 0;
+ }
+
/* mandatory / node 'description' property */
if (fdt_getprop(fit, 0, FIT_DESC_PROP, NULL) == NULL) {
debug("Wrong FIT format: no description\n");
--
2.29.2
More information about the openbmc
mailing list