drm: Fix authentication kernel crash
authorThomas Hellstrom <thellstrom@vmware.com>
Tue, 24 Jan 2012 17:54:21 +0000 (18:54 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Feb 2012 17:21:26 +0000 (09:21 -0800)
commit92d49a0e2967acb2e5ca1457baf10cfe997ce96c
treec52beb634b1bc9a7ad0ff553dde7ae2b15b6b2da
parentb3bed4ecc4be333931bb8e374dc49f052adedca5
drm: Fix authentication kernel crash

commit 598781d71119827b454fd75d46f84755bca6f0c6 upstream.

If the master tries to authenticate a client using drm_authmagic and
that client has already closed its drm file descriptor,
either wilfully or because it was terminated, the
call to drm_authmagic will dereference a stale pointer into kmalloc'ed memory
and corrupt it.

Typically this results in a hard system hang.

This patch fixes that problem by removing any authentication tokens
(struct drm_magic_entry) open for a file descriptor when that file
descriptor is closed.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/drm_auth.c
drivers/gpu/drm/drm_fops.c
include/drm/drmP.h