summaryrefslogtreecommitdiffstats
path: root/sbin/fsck_ffs/pass1.c
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/fsck_ffs/pass1.c')
-rw-r--r--sbin/fsck_ffs/pass1.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sbin/fsck_ffs/pass1.c b/sbin/fsck_ffs/pass1.c
index 59826a7..fcd596b 100644
--- a/sbin/fsck_ffs/pass1.c
+++ b/sbin/fsck_ffs/pass1.c
@@ -209,6 +209,12 @@ checkinode(inumber, idesc)
dp->di_mode = IFREG|0600;
inodirty();
}
+ if ((mode == IFBLK || mode == IFCHR || mode == IFIFO ||
+ mode == IFSOCK) && dp->di_size != 0) {
+ if (debug)
+ printf("bad special-file size %qu:", dp->di_size);
+ goto unknown;
+ }
ndb = howmany(dp->di_size, sblock.fs_bsize);
if (ndb < 0) {
if (debug)
OpenPOWER on IntegriCloud