Subject: Re: CVS commit: src/sys/dist/pf/net
To: None <tech-net@netbsd.org>
From: David Young <dyoung@pobox.com>
List: tech-net
Date: 12/04/2006 10:51:28
On Mon, Dec 04, 2006 at 07:49:08AM +0100, Pavel Cahyna wrote:
> On Mon, Dec 04, 2006 at 02:58:06AM +0000, David Young wrote:
> > 
> > Module Name:	src
> > Committed By:	dyoung
> > Date:		Mon Dec  4 02:58:06 UTC 2006
> > 
> > Modified Files:
> > 	src/sys/dist/pf/net: pf.c pfvar.h
> > 
> > Log Message:
> > Lightly constify.  Helps compile-time checking that we are not
> > scribbling over shared or read-only memory---e.g., in mbufs.
> 
> Why?

I was tracking a bug where pf corrupted packets.  Making subroutine
arguments const made it easier to winnow code paths from consideration:
if a pointer to mbuf storage was passed as const *, I knew it would not
be overwritten deliberately.

> mbufs passed to pf are guaranteed to be writable. (see PR 26433)

I did not think that the fix in 26433 was intended as anything but
a stopgap.  It does not seem efficient to copy IP+(UDP|TCP) headers on
every single packet regardless of whether it will be modified.  A better
fix would use your safe mbuf macros throughout pf.  (What is the status
of that, anyway?)

> I am afraid that such changes will make merging new versions of pf more
> difficult. (Have you cousulted with Peter Postma?)

I did not consult with Peter.  I think that this will make merging
negligibly more difficult.

Dave

-- 
David Young             OJC Technologies
dyoung@ojctech.com      Urbana, IL * (217) 278-3933