[PATCH] scripts: make_fit: propagate compressor failures

From: Hamdy Abou El Anein

Date: Tue Nov 03 2026 - 11:51:57 EST


From: Hamdy Abou El Anein <hamdy.aea@xxxxxxxxxxxxxx>

compress_data() ignores the compressor exit status and marks the
operation successful even if the tool wrote only partial output.
build_fit() can then place that truncated data into a FIT image.

Use check_call() so compressor failures abort image generation.
FileNotFoundError still allows trying the next supported executable.

Tested a compressor that writes partial output and exits with status
23: compression raises CalledProcessError and the CLI creates no FIT.
Also generated uncompressed and gzip FIT images with a real DTB and
ramdisk, and verified their payloads through libfdt and gzip.

AI assistance: ChatGPT/Codex identified the issue and prepared the
change, commit message and executable regression tests.

Fixes: 7a23b027ec17 ("arm64: boot: Support Flat Image Tree")
Signed-off-by: Hamdy Abou El Anein <hamdy.aea@xxxxxxxxxxxxxx>
---
scripts/make_fit.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/make_fit.py b/scripts/make_fit.py
index 9bd35aa7211..1a63364388c 100755
--- a/scripts/make_fit.py
+++ b/scripts/make_fit.py
@@ -214,7 +214,7 @@ def compress_data(inf, compress):
if tool in ('zstd', 'xz'):
cmd.extend(['-T0']) # Use all available cores
cmd.append('-c')
- subprocess.call(cmd, stdin=inf, stdout=outf)
+ subprocess.check_call(cmd, stdin=inf, stdout=outf)
done = True
break
except FileNotFoundError: