diff options
| author | Quentin Schulz <[email protected]> | 2025-09-23 12:27:22 +0200 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2025-10-10 13:28:36 -0600 |
| commit | b3ab77345e3d1e7f40f1991e5072daf0f2d972dc (patch) | |
| tree | 7bc8d265be241c823e2641916f9bbb191bd93298 | |
| parent | abab733fc24158f0195967e5b6fc69a0de4658a3 (diff) | |
mkimage: fit: erase data-size property when importing data
When importing data, the data-offset property is removed and the data
content is imported inside the data property of the node.
When mkimage is run twice on the same FIT, data-size property is already
set in the second run, from the first run (via the fit_export_data
function). If we don't remove the data-size property, nothing guarantees
it matches the actual size of data within the data property. To avoid
possible mistakes when handling the data property, let's simply remove
the data-size property as well.
This also fixes an ordering issue of the data-size and data-offset
properties in FIT when comparing the FIT after one run of mkimage and a
second run. This is due to fit_export_data setting data-offset property
first (it doesn't exist so it's added) and then data-size (it doesn't
exist so it's added) for the first run, while it sets data-offset
property first (removed in fit_import_data, so it doesn't exist so it's
added) and then data-size (it exists already from the first run, so it's
simply modified) for the second run.
Signed-off-by: Quentin Schulz <[email protected]>
| -rw-r--r-- | tools/fit_image.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/fit_image.c b/tools/fit_image.c index d026f6ff9c8..0306333141e 100644 --- a/tools/fit_image.c +++ b/tools/fit_image.c @@ -819,6 +819,14 @@ static int fit_import_data(struct image_tool_params *params, const char *fname) ret = -EINVAL; goto err_munmap; } + + ret = fdt_delprop(fdt, node, FIT_DATA_SIZE_PROP); + if (ret) { + debug("%s: Failed to erase %s property: %s\n", __func__, + FIT_DATA_SIZE_PROP, fdt_strerror(ret)); + ret = -EINVAL; + goto err_munmap; + } } confs = fdt_path_offset(fdt, FIT_CONFS_PATH); |
