summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sbin/fsirand/fsirand.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sbin/fsirand/fsirand.c b/sbin/fsirand/fsirand.c
index 8f2d15a9e7d..0b995890b87 100644
--- a/sbin/fsirand/fsirand.c
+++ b/sbin/fsirand/fsirand.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fsirand.c,v 1.41 2019/06/28 13:32:43 deraadt Exp $ */
+/* $OpenBSD: fsirand.c,v 1.42 2020/02/17 19:00:58 otto Exp $ */
/*
* Copyright (c) 1997 Todd C. Miller <millert@openbsd.org>
@@ -148,6 +148,15 @@ fsirand(char *device)
sblock->fs_magic != FS_UFS2_MAGIC)
continue; /* Not a superblock */
+ /*
+ * Do not look for an FFS1 file system at SBLOCK_UFS2.
+ * Doing so will find the wrong super-block for file
+ * systems with 64k block size.
+ */
+ if (sblock->fs_magic == FS_UFS1_MAGIC &&
+ sbtry[i] == SBLOCK_UFS2)
+ continue;
+
if (sblock->fs_magic == FS_UFS2_MAGIC &&
sblock->fs_sblockloc != sbtry[i])
continue; /* Not a superblock */