Message ID | 20220107133814.32655-2-ddiss@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | initramfs: "crc" cpio format and INITRAMFS_PRESERVE_MTIME | expand |
On Fri, Jan 07, 2022 at 02:38:09PM +0100, David Disseldorp wrote: > do_header() is called for each cpio entry and fails if the first six > bytes don't match "newc" magic. The magic check includes a special case > error message if POSIX.1 ASCII (cpio -H odc) magic is detected. This > special case POSIX.1 check can be nested under the "newc" mismatch code > path to avoid calling memcmp() twice in a non-error case. > > Signed-off-by: David Disseldorp <ddiss@suse.de> > Reviewed-by: Martin Wilck <mwilck@suse.com> > --- Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
diff --git a/init/initramfs.c b/init/initramfs.c index 2f3d96dc3db6..2f79b3ec0b40 100644 --- a/init/initramfs.c +++ b/init/initramfs.c @@ -257,12 +257,11 @@ static int __init do_collect(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)) { - error("no cpio magic"); + if (memcmp(collected, "070707", 6) == 0) + error("incorrect cpio method used: use -H newc option"); + else + error("no cpio magic"); return 1; } parse_header(collected);