privsep patch, Please test (take 2)

Tim Rice tim at multitalents.net
Fri May 31 06:07:25 EST 2002


On Thu, 30 May 2002, Ben Lindstrom wrote:

>
>
> On Thu, 30 May 2002, Tim Rice wrote:
>
> > On Thu, 30 May 2002, Ben Lindstrom wrote:
> >
> > >
> > >
> > > Ermm.. I think your configure.ac is invalid.
> > >
> > > Two things.
> > >
> > > 1. Lack of MAP_ANON/MAP_ANONYMOUS does not mean mmap is broken.  Just
> > > means it lacks a useful feature.
> >
> > True. Look again. the test doesn't fail on lack on MAP_ANON
> >
> > >
> > > 2. Linux 2.2 has a MAP_ANON but it's broken.  But that is a seperate issue
> > > from the fact that MAP_SHARED seems also to be broken.  I think they need
> > > to be tested seperately.
> > >
> > > Because if MAP_ANON is not useful (does not exist) we have a fallback
> > > plan.  However if MAP_SHARED is broken.  We are SOL.
> >
> > Do we want to someone on a 2.2 kernel to be able to enable privsep
> > and then have it fail if the client requests compression?
> >
> > With MAP_PRIVATE, on linux 2.2 it will work until  you use compression.
> >
> #include <stdio.h>
> #include <sys/mman.h>
> #if !defined(MAP_ANON) && defined(MAP_ANONYMOUS)
> #	define MAP_ANON MAP_ANONYMOUS
> #endif
>
> main()
> {
> 	void *address;
> #ifdef MAP_ANON
> 	address = mmap(NULL, 10, PROT_WRITE|PROT_READ, MAP_ANON|MAP_SHARED, -1, 0);
> 	if (address == MAP_FAILED)
> 		exit(1);
> #endif
> 	exit(0);
> }
>
>
> Problem with this. Is it gives a fault positive.  if MAP_ANON does not
> exist exists happily as if it does.  No way to tell the difference between
> no MAP_ANON and good MAP_ANON.
>
> Second issue is the 2.2 issue.  The above fails.  And we short cut out.
> Do we know for a fact that other platforms with MAP_ANON that are invalid
> or broken may still have usable MAP_SHARED?
>
> You are combining two tests into one.  They should be two seperate tests.

I did that by design.

> 1. Test for a usable MAP_ANON.
> 2. Test for usable open(/dev/zero)/MAP_SHARED test.
>
> For a few reasons.  PrivSep does not required mmap to do 90% of its job.
> Just requires it for compression.  And it would be nice if we could
> support PrivSep without compression.
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

OK.  My test won't do that. I'll rewrite it.

> Which means we add a line to end of configure.ac with the following:
>
> Priv Seperation:  {Fully enabled, No compression Support, Broken}
>
> Why?  Because in the next full release Theo is going to expect us to have
> PrivSep on by default.  And I'd at least like to let people see what level
> of PrivSep they can expect so they can disable it if it will not suite
> their needs.
>
> At this point if we could just get the code in to handle things cleanly
> without disabling compression support.  It would make things easier when
> we go back and add it.
>
> - Ben
>

-- 
Tim Rice				Multitalents	(707) 887-1469
tim at multitalents.net





More information about the openssh-unix-dev mailing list