[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#930366: initramfs-tools: unmkinitramfs fails to unpack lz4 compressed initrd



Package: initramfs-tools
Version: 0.133
Severity: normal
Tags: patch

Dear Maintainer,

unmkinitramfs fails to unpack lz4 compressed initrd, ie.:

$ sudo apt install initramfs-tools lz4 file
$ mkinitramfs -c lz4 -o foo.img
$ unmkinitramfs foo.img bar
cpio: premature end of archive
$ echo $?
2

I think this is because lz4cat is strict with file extensions:

$ file foo.img 
foo.img: LZ4 compressed data (v0.1-v0.9)
$ lz4cat -t foo.img 
File extension doesn't match expected LZ4_EXTENSION (.lz4); will not process file: foo.img

I propose the attached patch to change 'lz4cat -t $archive'
invocations to become 'lz4cat -t <$archive' instead. As lz4cat does
not / cannot enforce extension checking on streams.

Regards,

Dimitri.
diff -Nru initramfs-tools-0.133ubuntu6/unmkinitramfs initramfs-tools-0.133ubuntu8/unmkinitramfs
--- initramfs-tools-0.133ubuntu6/unmkinitramfs	2019-06-07 19:22:58.000000000 +0000
+++ initramfs-tools-0.133ubuntu8/unmkinitramfs	2019-06-09 23:21:17.000000000 +0000
@@ -33,8 +33,8 @@
 		gzip -c -d "$archive"
 	elif xzcat -t "$archive" >/dev/null 2>&1 ; then
 		xzcat "$archive"
-	elif lz4cat -t "$archive" >/dev/null 2>&1 ; then
-		lz4cat "$archive"
+	elif lz4cat -t <"$archive" >/dev/null 2>&1 ; then
+		lz4cat <"$archive"
 	elif bzip2 -t "$archive" >/dev/null 2>&1 ; then
 		bzip2 -c -d "$archive"
 	elif lzop -t "$archive" >/dev/null 2>&1 ; then


Reply to: