]> git.hungrycats.org Git - linux/commitdiff
drm/qxl: Do not leak memory if qxl_release_list_add fails
authorFrediano Ziglio <fziglio@redhat.com>
Wed, 3 Jun 2015 11:09:10 +0000 (12:09 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 3 Aug 2015 16:29:55 +0000 (09:29 -0700)
commit 8451cc964c1d193b989c41a44e5e77109cc696f8 upstream.

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>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/qxl/qxl_ioctl.c

index 0bb86e6d41b44cc4c1641e72da6e67e754994798..56a13a915155a7126008a814241c81018f0af6ff 100644 (file)
@@ -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;
 }