spl: fit: Don't overwrite previous loadable if "load" is missing
authorAlexandru Gagniuc <mr.nuke.me@gmail.com>
Mon, 29 Mar 2021 17:05:10 +0000 (12:05 -0500)
committerTom Rini <trini@konsulko.com>
Wed, 14 Apr 2021 19:23:01 +0000 (15:23 -0400)
commitf0a6ec3656e5561a3d2e246b0fad7e55e419515b
tree519fa557ce4152fdfd9a8322020e508d32d6b636
parent78015263b9789ef12fa6e454cf5041f97ce40da4
spl: fit: Don't overwrite previous loadable if "load" is missing

spl_load_fit_image() will try to load an image at the address given
in the "load" property. Absent such property, it uses

image_info->load_addr

Correct use of this is demonstrated in spl_fit_append_fdt(), which
resets the 'load_addr' before each spl_load_fit_image() call.

On the other hand loading "loadables" loop in spl_load_simple_fit()
completely ignores this. It re-uses the same structure, but doesn't
reset load_addr. If loadable [i] does not have a "load" property, its
load address defaults to load_addr, which still contains the address
of loadable [i - 1].

A simple solution is to treat NULL as an invalid load address. The
caller can set load_addr = 0 to request an abort if the "load"
property is absent.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
common/spl/spl_fit.c