drm: Fix authentication kernel crash
authorThomas Hellstrom <thellstrom@vmware.com>
Tue, 24 Jan 2012 17:54:21 +0000 (18:54 +0100)
committerSimone Willett <swillett@nvidia.com>
Fri, 10 Feb 2012 02:20:16 +0000 (18:20 -0800)
commit62471cd2ebd7adbb9c360bdb7e2970a59e0745f0
tree6d8ae388432c4305665e858a5457ae493d379a54
parent296c9ca65997b53955ed418a2a43067310c36602
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>
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Change-Id: Icbba107e666306a34a621955458091410da3956a
Reviewed-on: http://git-master/r/79654
Reviewed-by: Automatic_Commit_Validation_User
drivers/gpu/drm/drm_auth.c
drivers/gpu/drm/drm_fops.c
include/drm/drmP.h