diff options
Diffstat (limited to 'sbin/fsck_ffs')
-rw-r--r-- | sbin/fsck_ffs/pass1.c | 6 |
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) |