Subject: File system problems
To: None <current-users@NetBSD.ORG>
From: None <mycroft@gnu.ai.mit.edu>
List: current-users
Date: 10/18/1994 23:34:53
These are definitely caused by (a?) bogus ftruncate() or lseek() call
that has the wrong type for the second argument.  Often this causes
random garbage to be passed in the upper 32 bits of the offset.  This,
combined with a major bug I just located in FFS, is almost certainly
what's been trashing a few people's file system.

I'd suggest, for now, changing the test at the top of ffs_truncate()
from:

        if (length < 0)
                return (EINVAL);

to:

	if (length < 0 || length > 0xffffffffLL)
		return (EINVAL);

and putting a similar test in ufs_seek().  This will alleviate the
symptoms until the problem is fixed correctly.