diff options
| author | Aristo Chen <[email protected]> | 2025-04-30 10:23:25 +0800 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2025-05-05 14:16:57 -0600 |
| commit | f717d798becf2dffd5816484962c350808e98a18 (patch) | |
| tree | 0f12139562f07d875e0e78f23015dcb696543629 /boot | |
| parent | 03f5101ff50d1b449c65a4483c725b4ae0446c62 (diff) | |
bootm: improve error message when gzip decompression buffer is too small
Currently, when decompressing a gzip-compressed image during bootm, a
generic error such as "inflate() returned -5" is shown when the buffer is
too small. However, it is not immediately clear that this is caused by
CONFIG_SYS_BOOTM_LEN being too small.
This patch improves error handling by:
- Detecting Z_BUF_ERROR (-5) returned from the inflate() call
- Suggesting the user to increase CONFIG_SYS_BOOTM_LEN when applicable
- Preserving the original return code from zunzip() instead of overwriting
it with -1
By providing clearer hints when decompression fails due to insufficient
buffer size, this change helps users diagnose and fix boot failures more
easily.
Signed-off-by: Aristo Chen <[email protected]>
Reviewed-by: Tom Rini <[email protected]>
Reviewed-by: Mattijs Korpershoek <[email protected]>
Diffstat (limited to 'boot')
| -rw-r--r-- | boot/bootm.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/boot/bootm.c b/boot/bootm.c index f5cbb10f0d1..f6aa32746b7 100644 --- a/boot/bootm.c +++ b/boot/bootm.c @@ -34,6 +34,7 @@ #include <bootm.h> #include <image.h> +#include <u-boot/zlib.h> #define MAX_CMDLINE_SIZE SZ_4K @@ -578,7 +579,8 @@ static int handle_decomp_error(int comp_type, size_t uncomp_size, if (ret == -ENOSYS) return BOOTM_ERR_UNIMPLEMENTED; - if (uncomp_size >= buf_size) + if ((comp_type == IH_COMP_GZIP && ret == Z_BUF_ERROR) || + uncomp_size >= buf_size) printf("Image too large: increase CONFIG_SYS_BOOTM_LEN\n"); else printf("%s: uncompress error %d\n", name, ret); |
