cvs commit: src/sys/ufs/ffs ffs_alloc.c

Bjoern A. Zeeb bz at
Mon Oct 1 04:10:07 PDT 2007

On Mon, 1 Oct 2007, Bruce Evans wrote:

> On Mon, 1 Oct 2007, Bjoern A. Zeeb wrote:
>> On Mon, 1 Oct 2007, Tom Judge wrote:
>>> Tom Judge wrote:
>>>> Bjoern A. Zeeb wrote:
>>>>> bz          2007-09-24 13:39:06 UTC
>>>>>   FreeBSD src repository
>>>>>   Modified files:        (Branch: RELENG_6)
>>>>>     sys/ufs/ffs          ffs_alloc.c   Log:
>>>>>   MFC rev. 1.147
>>>>>     Fix a DIV0 in case a large value for fs_avgfilesize or fs_avgfpdir
>>>>>     is given (with newfs or tunefs) and dirsize overflows.
>>>>>       In case dirsize is <= 0 because of an overflow set maxcontigdirs
>>>>>     to 0 so it will be 1 later. This is what would happen for large
>>>>>     fs_avgfilesize. [1]
>>>>>       Submitted by:                   pjd [1]
>>>>>     Revision   Changes    Path
>>>>>  +4 -1      src/sys/ufs/ffs/ffs_alloc.c
>>>> Does this by any chance fis this PR: kern/111352?
>>> s/fis/fix/
>> yes it should. I closed the PR, See the comment there.
> s/fix/work around/
> The bug is in newfs and tunefs permitting garbage parameters, so it cannot
> be fixed in ffs_alloc.c.

No matter what iput the kernel gets and from where, it MUST NOT (or at
least SHOULD not;) panic unless explicitly request by KASSERT/panic/..

So this commit fixes a DIV0 bug in the kernel.

Of course you are right, that the values should be checked by the tools
that we have in the tree so that this problem would not occur.
We could even check if the values given make sense at all, but that still
is a different story to a kernel panic.

Bjoern A. Zeeb                                 bzeeb at Zabbadoz dot NeT
Software is harder than hardware  so better get it right the first time.

More information about the cvs-src mailing list