From cb37637b47d56726856ab8801ee6fdd049ad16eb Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Tue, 15 Dec 2009 01:55:55 +0100 Subject: switch_root: more clear error messages Signed-off-by: Denys Vlasenko --- util-linux/switch_root.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/util-linux/switch_root.c b/util-linux/switch_root.c index ff05518..e2da119 100644 --- a/util-linux/switch_root.c +++ b/util-linux/switch_root.c @@ -85,12 +85,14 @@ int switch_root_main(int argc UNUSED_PARAM, char **argv) // Additional sanity checks: we're about to rm -rf /, so be REALLY SURE // we mean it. I could make this a CONFIG option, but I would get email // from all the people who WILL destroy their filesystems. + if (stat("/init", &st) != 0 || !S_ISREG(st.st_mode)) { + bb_error_msg_and_die("/init is not a regular file"); + } statfs("/", &stfs); // this never fails - if (stat("/init", &st) != 0 || !S_ISREG(st.st_mode) - || ((unsigned)stfs.f_type != RAMFS_MAGIC - && (unsigned)stfs.f_type != TMPFS_MAGIC) + if ((unsigned)stfs.f_type != RAMFS_MAGIC + && (unsigned)stfs.f_type != TMPFS_MAGIC ) { - bb_error_msg_and_die("not rootfs"); + bb_error_msg_and_die("root filesystem is not ramfs/tmpfs"); } // Zap everything out of rootdev -- cgit v1.1