]> www.infradead.org Git - users/jedix/linux-maple.git/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:08 +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 b110883f8253dc272498abb64b4c408146519930..7354a4cda59d95aa17e6704602ca2aaa49c0e36d 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;
 }