[PATCH 1/1] libfdt: error handling fdt_open_into()
Heinrich Schuchardt
heinrich.schuchardt at canonical.com
Wed Oct 28 06:03:38 PDT 2026
On 10/28/26 01:21, Heinrich Schuchardt wrote:
> fdt_num_mem_rsv() may return -FDT_ERR_TRUNCATED.
>
> fdt_open_into() should handle this error condition instead of blindly
> continuing.
>
> Addresses-Coverity-ID: ("1595097 Overflowed integer argument")
> Fixes: e2ce15cb3be9 ("platform: Add libfdt support.")
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
We should better apply the upstream fix which corrects more issues:
47d7c01ba8a1 ("libfdt: Fix bugs with unchecked usage of fdt_num_mem_rsv()")
Or should we upgrade the whole of libfdt to v1.8.1?
Best regards
Heinrich
> ---
> lib/utils/libfdt/fdt_rw.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/lib/utils/libfdt/fdt_rw.c b/lib/utils/libfdt/fdt_rw.c
> index b3b8e73c..207b5ffc 100644
> --- a/lib/utils/libfdt/fdt_rw.c
> +++ b/lib/utils/libfdt/fdt_rw.c
> @@ -427,7 +427,10 @@ int fdt_open_into(const void *fdt, void *buf, int bufsize)
>
> FDT_RO_PROBE(fdt);
>
> - mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
> + mem_rsv_size = fdt_num_mem_rsv(fdt);
> + if (mem_rsv_size < 0)
> + return mem_rsv_size;
> + mem_rsv_size = (mem_rsv_size + 1)
> * sizeof(struct fdt_reserve_entry);
>
> if (can_assume(LATEST) || fdt_version(fdt) >= 17) {
More information about the opensbi
mailing list