Subject: Re: RFC: Network privilege separation.

From: Rémi Denis-Courmont <[email-masked]>
Date: Mon, 12 Jan 2009 22:15:27 +0200

Le lundi 12 janvier 2009 22:14:35 Andi Kleen, vous avez écrit :
> > Expanding the heap,
>
> That's a problem agreed  Ok you can just always use very
> bss arrays sized for the worst case.
>
> > Getting timestamps.
>
> At least on 64bit that's done in ring 3 only with a vsyscall.
>
> > Waiting on futexes,
> > catching signals, polling file descriptors. Seeking, doing vectorized
> > I/O. Cloning.
>
> That all can be done by the frontend reading/feeding
> data into the pipe. But it shouldn't directly access the user data
> to be immune against attacks.

What's the point of writing a parser (that could also have bugs) when the 
kernel can do it? One could argue that shared futexes could be dangerous, but 
not the rest?

> > Codecs don't like to read/write raw video through a pipe...
>
> I don't think that's given. It would need some restructuring,
> but I think the end result would be likely worth it.

A normal DVD would be over 30 megabytes per seconds once decoded, just for the 
video. And remember vmsplice() is not allowed by SECCOMP. Media players have 
assembly-coded memory copy optimizations (like the kernel) for some reason.

-- 
Rémi Denis-Courmont
http://www.remlab.net/