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