initramfs: break loop when decompression finishes 54/316354/1 accepted/tizen_unified accepted/tizen_unified_dev accepted/tizen_unified_x tizen accepted/tizen/unified/20240822.181347 accepted/tizen/unified/dev/20240826.221248 accepted/tizen/unified/x/20240823.023205
authorMarek Szyprowski <m.szyprowski@samsung.com>
Thu, 11 Jul 2024 14:41:45 +0000 (16:41 +0200)
committerJaehoon Chung <jh80.chung@samsung.com>
Tue, 20 Aug 2024 04:06:24 +0000 (13:06 +0900)
This fixes booting with initramfs (cpio.gz based) with additional garbage
added after the main initramfs image.

The below message is displayed during booting.

[    0.546162] rootfs image is not initramfs (invalid magic at start of compressed archive); looks like an initrd

Change-Id: Iddf10f6696c7d15ec68d29bc69614523c9fd9b65
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
init/initramfs.c

index 8d0fd94..828f7f4 100644 (file)
@@ -520,6 +520,7 @@ static char * __init unpack_to_rootfs(char *buf, unsigned long len)
                                   &my_inptr, error);
                        if (res)
                                error("decompressor failed");
+                       break;
                } else if (compress_name) {
                        if (!message) {
                                snprintf(msg_buf, sizeof msg_buf,