[git commit master] switch_root: more clear error messages

Denys Vlasenko vda.linux at googlemail.com
Tue Dec 15 00:55:55 UTC 2009


commit: http://git.busybox.net/busybox/commit/?id=cb37637b47d56726856ab8801ee6fdd049ad16eb
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 util-linux/switch_root.c |   10 ++++++----
 1 files 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
-- 
1.6.3.3



More information about the busybox-cvs mailing list