summaryrefslogtreecommitdiff
path: root/drivers/gpu
diff options
context:
space:
mode:
authorFrediano Ziglio <fziglio@redhat.com>2015-06-03 12:09:10 +0100
committerSasha Levin <sasha.levin@oracle.com>2015-07-03 23:02:24 -0400
commit0879d31bac62f999aad65358e174a62d43694dd8 (patch)
treeb4be221317b683065d5acd6cea43dcc631f69a5e /drivers/gpu
parentd3808ea819469b6ab6f04cb198d60910646a4893 (diff)
downloadlwn-0879d31bac62f999aad65358e174a62d43694dd8.tar.gz
lwn-0879d31bac62f999aad65358e174a62d43694dd8.zip
drm/qxl: Do not leak memory if qxl_release_list_add fails
[ Upstream commit 8451cc964c1d193b989c41a44e5e77109cc696f8 ] If the function fails reference counter to the object is not decremented causing leaks. This is hard to spot as it happens only on very low memory situations. Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Cc: stable@vger.kernel.org Reviewed-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/qxl/qxl_ioctl.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/qxl/qxl_ioctl.c b/drivers/gpu/drm/qxl/qxl_ioctl.c
index b110883f8253..7354a4cda59d 100644
--- a/drivers/gpu/drm/qxl/qxl_ioctl.c
+++ b/drivers/gpu/drm/qxl/qxl_ioctl.c
@@ -122,8 +122,10 @@ static struct qxl_bo *qxlhw_handle_to_bo(struct qxl_device *qdev,
qobj = gem_to_qxl_bo(gobj);
ret = qxl_release_list_add(release, qobj);
- if (ret)
+ if (ret) {
+ drm_gem_object_unreference_unlocked(gobj);
return NULL;
+ }
return qobj;
}