Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Sep 2004 02:46:53 -0700 (PDT)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Giorgos Keramidas <keramida@freebsd.org>
Cc:        gerarra@tin.it
Subject:   Re: FreeBSD Kernel buffer overflow
Message-ID:  <200409170946.i8H9kr4P021050@apollo.backplane.com>
References:  <4146316C00007833@ims3a.cp.tin.it> <20040917093712.GB94990@orion.daedalusnetworks.priv>

next in thread | previous in thread | raw e-mail | index | archive | help
:pass more arguments and added a KASSERT in trap.c that is only enabled for
:kernels compiled with INVARIANTS turned on?
:...
:
: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.
:
:- - Giorgos

    KASSERT()'s are only compiled in if INVARIANTS is turned on anyway.
    If you don't have INVARIANTS turned on, all your KASSERT's go poof.

    Look at the #define KASSERT in sys/systm.h.

    I strongly recommend that all kernels always be compiled with INVARIANTS
    turned on.  Even production kernels.  I believe GENERIC defaults to
    INVARIANTS turned on.  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).

						-Matt



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200409170946.i8H9kr4P021050>