From: Lad Prabhakar <prabhakar.mahadev-lad...@bp.renesas.com>

It might happen that CONFIG_GZIP and CONFIG_LZO are enabled but we might
have CONFIG_MULTI_DTB_FIT_LZO enabled in this case in the code path of
uncompress_blob() we parse the gzip headers first which results in
`Error: Bad gzipped data` being printed. To avoid this parse the gzip/lzo
headers only when dependencies have met.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad...@bp.renesas.com>
---
 lib/fdtdec.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index 6865f78c70..52f431c197 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -1172,10 +1172,10 @@ static int uncompress_blob(const void *src, ulong 
sz_src, void **dstp)
        void *dst;
        int rc;
 
-       if (CONFIG_IS_ENABLED(GZIP))
+       if (CONFIG_IS_ENABLED(GZIP) && CONFIG_IS_ENABLED(MULTI_DTB_FIT_GZIP))
                if (gzip_parse_header(src, sz_in) >= 0)
                        gzip = 1;
-       if (CONFIG_IS_ENABLED(LZO))
+       if (CONFIG_IS_ENABLED(LZO) && CONFIG_IS_ENABLED(MULTI_DTB_FIT_LZO))
                if (!gzip && lzop_is_valid_header(src))
                        lzo = 1;
 
-- 
2.43.0

Reply via email to