FreeBSD Kernel buffer overflow

Giorgos Keramidas keramida at ceid.upatras.gr
Fri Sep 17 03:45:15 PDT 2004


On 2004-09-17 02:46, Matthew Dillon <dillon at apollo.backplane.com> wrote:
> :A KASSERT() wrapped in #ifdef INVARIANTS has zero overhead for normal,
> :non-debugging kernels.  The developers who are responsible for writing and
> :testing new system calls should use INVARIANTS anyway, so they'll quickly
> :catch the mistake.
>
>     I strongly recommend that all kernels always be compiled with INVARIANTS
>     turned on.  Even production kernels.  I believe GENERIC defaults to
>     INVARIANTS turned on.

In -CURRENT it's enabled for all platforms:

: $ grep 'INVARIANTS[[:space:]]' */conf/GENERIC
: alpha/conf/GENERIC:options      INVARIANTS              #Enable calls of extra sanity checking
: amd64/conf/GENERIC:options      INVARIANTS              # Enable calls of extra sanity checking
: i386/conf/GENERIC:options       INVARIANTS              # Enable calls of extra sanity checking
: pc98/conf/GENERIC:options       INVARIANTS              # Enable calls of extra sanity checking
: powerpc/conf/GENERIC:options    INVARIANTS              #Enable calls of extra sanity checking
: sparc64/conf/GENERIC:options    INVARIANTS              # Enable calls of extra sanity checking

> I'm not sure what is done during release cycles but presumably
> INVARIANTS is left on for the release build as well (if it isn't it
> should be).

I'm not sure either.  I've been running HEAD for a long time; for an
informed answer I'd have to ask the RE people.

- Giorgos



More information about the freebsd-hackers mailing list