From 64fa5028905150a5b3932025b8ab4f1e1e9420c4 Mon Sep 17 00:00:00 2001 From: mckusick Date: Wed, 12 Jul 2000 06:19:22 +0000 Subject: Ensure that block and character devices as well as fifo's and sockets all have zero length. A non-zero length panic's the kernel when one of these is deleted. PR: 19426 Submitted by: Ian Dowse Reviewed by: dwmalone@FreeBSD.org --- sbin/fsck_ffs/pass1.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'sbin/fsck_ffs/pass1.c') 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) -- cgit v1.1