Переглянути джерело

[PATCH] Make initramfs printk a warning on incorrect cpio type

It turns out that the "-c" option of cpio is highly unportable even between
distros let alone unix variants, and may actually make the wrong type of
cpio archive.  I just wasted quite some time on this, and the kernel can
detect this and warn about it (it's __init memory so it gets thrown away
and thus there is no runtime overhead)

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Arjan van de Ven 18 роки тому
батько
коміт
2e591bbc0d
1 змінених файлів з 4 додано та 0 видалено
  1. 4 0
      init/initramfs.c

+ 4 - 0
init/initramfs.c

@@ -182,6 +182,10 @@ static int __init do_collect(void)
 
 
 static int __init do_header(void)
 static int __init do_header(void)
 {
 {
+	if (memcmp(collected, "070707", 6)==0) {
+		error("incorrect cpio method used: use -H newc option");
+		return 1;
+	}
 	if (memcmp(collected, "070701", 6)) {
 	if (memcmp(collected, "070701", 6)) {
 		error("no cpio magic");
 		error("no cpio magic");
 		return 1;
 		return 1;