Hi.

Jon Smirl wrote:
On 6/21/05, Jon Smirl <[EMAIL PROTECTED]> wrote:
  
Second choice would be to make a new map type, DRM_VSHM. The specific
driver would initmap the needed space at load time. The code
implementing it would be identical to DRM_SHM, you just need another
map type defined so that you can tell them apart. This scheme does not
require anyone to be root and does not have a kernel DOS hole.
    

So back to the original topic.

I'll add a new map type DRM_VSHM. When initializing, the chip specific
driver needs to do something like this:

if ((ret = drm_initmap(dev, 0, video_size, 0, _DRM_VSHM, 0)))
	goto err_g1;

The map needs to be created in the driver. Opening it up to a normal
user is a DOS hole where the kernel can be run out of memory. Use
getmap to find the map from user space.

  
Really what is needed is a shmget thingy that returns a handle to a map  which is only mappable by  authorized clients. If I understand your solution above, there would be only one extra shared map, and it needs to be looked up from user space, which would be equivalent to allocating a twice as large primary sarea and reserve half of it to applications other than OpenGL, and is hence not needed.

Why not have a thing similar to drmAddMap doing this (but not root-only)?
With proper checks I can't see why that would be a bigger security hole than shmget?

/Thomas



Reply via email to