From a48d6c2615266ee3151769f494552de547a33be6 Mon Sep 17 00:00:00 2001 From: Rajkumar Ayyasamy Date: Fri, 24 Sep 2021 16:50:31 +0530 Subject: [PATCH] lib: fdt: use ULONG_MAX for boundary checks We are typecasting the fdt_start and other parameters to unit64_t. So ULONG_MAX should be used for the boundary check. Signed-off-by: Rajkumar Ayyasamy Change-Id: I42b4c0cb05902410c4e18553017c016bdd312207 --- lib/libfdt/fdt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/libfdt/fdt.c b/lib/libfdt/fdt.c index 673bab44e6..b548d5cf05 100644 --- a/lib/libfdt/fdt.c +++ b/lib/libfdt/fdt.c @@ -14,7 +14,7 @@ #include "libfdt_internal.h" -#define UINT_MAX (~0U) +#define ULONG_MAX (~0UL) int fdt_check_header(const void *fdt) { @@ -41,13 +41,13 @@ int fdt_check_header(const void *fdt) } fdt_end = fdt_start + fdt_totalsize(fdt); - if (((uint64_t)fdt_start + (uint64_t)fdt_off_dt_struct(fdt) + (uint64_t)fdt_size_dt_struct(fdt)) > UINT_MAX) + if (((uint64_t)fdt_start + (uint64_t)fdt_off_dt_struct(fdt) + (uint64_t)fdt_size_dt_struct(fdt)) > ULONG_MAX) return FDT_ERR_BADOFFSET; if ((fdt_start + fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt)) > fdt_end) return FDT_ERR_BADOFFSET; - if (((uint64_t)fdt_start + (uint64_t)fdt_off_dt_strings(fdt) + (uint64_t)fdt_size_dt_strings(fdt)) > UINT_MAX) + if (((uint64_t)fdt_start + (uint64_t)fdt_off_dt_strings(fdt) + (uint64_t)fdt_size_dt_strings(fdt)) > ULONG_MAX) return FDT_ERR_BADOFFSET; if ((fdt_start + fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt)) > fdt_end)