]> git.itanic.dy.fi Git - linux-stable/commit
drm/r128: Add test for initialisation to all ioctls that require it
authorBen Hutchings <ben@decadent.org.uk>
Sun, 23 Aug 2009 15:59:04 +0000 (16:59 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 1 Apr 2010 22:52:24 +0000 (15:52 -0700)
commit3807f5c31534736f3c23630b11bd4a259eaa46fd
tree259c1c773bbc5efaa24e4c6e0d26ef04571bf6d6
parent0a32cd3d6adbe5cbfdfb411e1b1fccceec75e36a
drm/r128: Add test for initialisation to all ioctls that require it

commit 7dc482dfeeeefcfd000d4271c4626937406756d7 upstream.

Almost all r128's private ioctls require that the CCE state has
already been initialised.  However, most do not test that this has
been done, and will proceed to dereference a null pointer.  This may
result in a security vulnerability, since some ioctls are
unprivileged.

This adds a macro for the common initialisation test and changes all
ioctl implementations that require prior initialisation to use that
macro.

Also, r128_do_init_cce() does not test that the CCE state has not
been initialised already.  Repeated initialisation may lead to a crash
or resource leak.  This adds that test.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/gpu/drm/r128/r128_cce.c
drivers/gpu/drm/r128/r128_drv.h
drivers/gpu/drm/r128/r128_state.c