Skip to contentSkip to conversation

refuse plain ufs mount

uPATCH Example 2 participants 2 messages Jan 28, 2004 – Jan 29, 2004

lore
Share & tools
lore

Example

author
#0 lore raw

Hi,

There's a semantic change introduced by this patch. I don't know enough about UFS to call it a bug, but it certainly looks suspicious.

Quoted 12 lines
ufs/super.c renamed from ufs/super.c.org +1 -1
@@ -516,7 +516,7 @@
 		printk("wrong mount options\n");
 		goto failed;
 	}
-	if (!(sbi->s_mount_opt & UFS_MOUNT_UFSTYPE)) {
+	if (!(sbi->s_mount_opt & UFS_MOUNT_UFSTYPE) && !silent) {
 		printk("You didn't specify the type of your ufs filesystem\n\n"
 		"mount -t ufs -o ufstype="
 		"sun|sunx86|44bsd|old|hp|nextstep|netxstep-cd|openstep ...\n\n"

ufs/super.c line 580

Quoted 7 lines
ufs/super.c renamed from ufs/super.c.org +1 -1
@@ -575,7 +575,7 @@
 		uspi->s_sbsize = super_block_size = 2048;
 		uspi->s_sbbase = 0;
 		flags |= UFS_DE_OLD | UFS_UID_OLD | UFS_ST_OLD | UFS_CG_OLD;
-		if (!(sb->s_flags & MS_RDONLY)) {
+		if (!(sb->s_flags & MS_RDONLY) && !silent) {
 			printk(KERN_INFO "ufstype=old is supported read-only\n");
 			sb->s_flags |= MS_RDONLY;

If "silent" is set, this variable assignment is skipped. I would have thought that the assignment should happen, and only the printk() should be skipped.

ufs/super.c line 594

Quoted 9 lines
ufs/super.c renamed from ufs/super.c.org +1 -1
 		}
@@ -589,7 +589,7 @@
 		uspi->s_sbsize = super_block_size = 2048;
 		uspi->s_sbbase = 0;
 		flags |= UFS_DE_OLD | UFS_UID_OLD | UFS_ST_OLD | UFS_CG_OLD;
-		if (!(sb->s_flags & MS_RDONLY)) {
+		if (!(sb->s_flags & MS_RDONLY) && !silent) {
 			printk(KERN_INFO "ufstype=nextstep is supported read-only\n");
 			sb->s_flags |= MS_RDONLY;

Same here.

ufs/super.c line 608

Quoted 9 lines
ufs/super.c renamed from ufs/super.c.org +1 -1
 		}
@@ -603,7 +603,7 @@
 		uspi->s_sbsize = super_block_size = 2048;
 		uspi->s_sbbase = 0;
 		flags |= UFS_DE_OLD | UFS_UID_OLD | UFS_ST_OLD | UFS_CG_OLD;
-		if (!(sb->s_flags & MS_RDONLY)) {
+		if (!(sb->s_flags & MS_RDONLY) && !silent) {
 			printk(KERN_INFO "ufstype=nextstep-cd is supported read-only\n");
 			sb->s_flags |= MS_RDONLY;

And again.

ufs/super.c line 622

Quoted 9 lines
ufs/super.c renamed from ufs/super.c.org +1 -1
 		}
@@ -617,7 +617,7 @@
 		uspi->s_sbsize = super_block_size = 2048;
 		uspi->s_sbbase = 0;
 		flags |= UFS_DE_44BSD | UFS_UID_44BSD | UFS_ST_44BSD | UFS_CG_44BSD;
-		if (!(sb->s_flags & MS_RDONLY)) {
+		if (!(sb->s_flags & MS_RDONLY) && !silent) {
 			printk(KERN_INFO "ufstype=openstep is supported read-only\n");
 			sb->s_flags |= MS_RDONLY;

Another one.

ufs/super.c line 636

Quoted 9 lines
ufs/super.c renamed from ufs/super.c.org +1 -1
 		}
@@ -631,13 +631,14 @@
 		uspi->s_sbsize = super_block_size = 2048;
 		uspi->s_sbbase = 0;
 		flags |= UFS_DE_OLD | UFS_UID_OLD | UFS_ST_OLD | UFS_CG_OLD;
-		if (!(sb->s_flags & MS_RDONLY)) {
+		if (!(sb->s_flags & MS_RDONLY) && !silent) {
 			printk(KERN_INFO "ufstype=hp is supported read-only\n");
 			sb->s_flags |= MS_RDONLY;

And again.

Quoted 18 lines
ufs/super.c renamed from ufs/super.c.org +4 -2
 		}
 		break;
 	default:
-		printk("unknown ufstype\n");
+		if (!silent)
+			printk("unknown ufstype\n");
 		goto failed;
 	}
 
@@ -687,7 +688,8 @@
 		uspi->s_sbbase += 8;
 		goto again;
 	}
-	printk("ufs_read_super: bad magic number\n");
+	if (!silent)
+		printk("ufs_read_super: bad magic number\n");
 	goto failed;
 
Quoted 1 line

magic_found:

Kind regards,

Jon

#1 lore raw

At Wed, 28 Jan 2004 22:24:30 +0000,

Quoted 3 lines · Example

There's a semantic change introduced by this patch. I don't know enough about UFS to call it a bug, but it certainly looks suspicious.

Exactly. Thanks for your check, and I'm sorry the previous patch which includes such wrong change. I attached the update one.

Regards,
-- gotom

ufs/super.c renamed from ufs/super.c.org +20 -12
@@ -517,11 +517,12 @@
 		goto failed;
 	}
 	if (!(sbi->s_mount_opt & UFS_MOUNT_UFSTYPE)) {
-		printk("You didn't specify the type of your ufs filesystem\n\n"
-		"mount -t ufs -o ufstype="
-		"sun|sunx86|44bsd|old|hp|nextstep|netxstep-cd|openstep ...\n\n"
-		">>>WARNING<<< Wrong ufstype may corrupt your filesystem, "
-		"default is ufstype=old\n");
+		if (!silent)
+			printk("You didn't specify the type of your ufs filesystem\n\n"
+			"mount -t ufs -o ufstype="
+			"sun|sunx86|44bsd|old|hp|nextstep|netxstep-cd|openstep ...\n\n"
+			">>>WARNING<<< Wrong ufstype may corrupt your filesystem, "
+			"default is ufstype=old\n");
 		ufs_set_opt (sbi->s_mount_opt, UFSTYPE_OLD);
 	}
 
@@ -576,7 +577,8 @@
 		uspi->s_sbbase = 0;
 		flags |= UFS_DE_OLD | UFS_UID_OLD | UFS_ST_OLD | UFS_CG_OLD;
 		if (!(sb->s_flags & MS_RDONLY)) {
-			printk(KERN_INFO "ufstype=old is supported read-only\n"); 
+			if (!silent)
+				printk(KERN_INFO "ufstype=old is supported read-only\n"); 
 			sb->s_flags |= MS_RDONLY;
 		}
 		break;
@@ -590,7 +592,8 @@
 		uspi->s_sbbase = 0;
 		flags |= UFS_DE_OLD | UFS_UID_OLD | UFS_ST_OLD | UFS_CG_OLD;
 		if (!(sb->s_flags & MS_RDONLY)) {
-			printk(KERN_INFO "ufstype=nextstep is supported read-only\n");
+			if (!silent)
+				printk(KERN_INFO "ufstype=nextstep is supported read-only\n");
 			sb->s_flags |= MS_RDONLY;
 		}
 		break;
@@ -604,7 +607,8 @@
 		uspi->s_sbbase = 0;
 		flags |= UFS_DE_OLD | UFS_UID_OLD | UFS_ST_OLD | UFS_CG_OLD;
 		if (!(sb->s_flags & MS_RDONLY)) {
-			printk(KERN_INFO "ufstype=nextstep-cd is supported read-only\n");
+			if (!silent)
+				printk(KERN_INFO "ufstype=nextstep-cd is supported read-only\n");
 			sb->s_flags |= MS_RDONLY;
 		}
 		break;
@@ -618,7 +622,8 @@
 		uspi->s_sbbase = 0;
 		flags |= UFS_DE_44BSD | UFS_UID_44BSD | UFS_ST_44BSD | UFS_CG_44BSD;
 		if (!(sb->s_flags & MS_RDONLY)) {
-			printk(KERN_INFO "ufstype=openstep is supported read-only\n");
+			if (!silent)
+				printk(KERN_INFO "ufstype=openstep is supported read-only\n");
 			sb->s_flags |= MS_RDONLY;
 		}
 		break;
@@ -632,12 +637,14 @@
 		uspi->s_sbbase = 0;
 		flags |= UFS_DE_OLD | UFS_UID_OLD | UFS_ST_OLD | UFS_CG_OLD;
 		if (!(sb->s_flags & MS_RDONLY)) {
-			printk(KERN_INFO "ufstype=hp is supported read-only\n");
+			if (!silent)
+				printk(KERN_INFO "ufstype=hp is supported read-only\n");
 			sb->s_flags |= MS_RDONLY;
  		}
  		break;
 	default:
-		printk("unknown ufstype\n");
+		if (!silent)
+			printk("unknown ufstype\n");
 		goto failed;
 	}
 	
@@ -687,7 +694,8 @@
 		uspi->s_sbbase += 8;
 		goto again;
 	}
-	printk("ufs_read_super: bad magic number\n");
+	if (!silent)
+		printk("ufs_read_super: bad magic number\n");
 	goto failed;
 
 magic_found: