diff options
| -rw-r--r-- | sbin/fsirand/fsirand.c | 11 |
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 */ |
