If drm_gem_handle_create fails, the reference count of local_gobj
will never be released, resulting in a leak of local_gobj.
Fixes: f64122c1f6ad("drm: add new QXL driver. (v1.4)")
Signed-off-by: Hongtao Lee <[email protected]>
---
drivers/gpu/drm/qxl/qxl_gem.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/qxl/qxl_gem.c b/drivers/gpu/drm/qxl/qxl_gem.c
index 4939b57a2a48..2bdff4cee952 100644
--- a/drivers/gpu/drm/qxl/qxl_gem.c
+++ b/drivers/gpu/drm/qxl/qxl_gem.c
@@ -99,8 +99,10 @@ int qxl_gem_object_create_with_handle(struct qxl_device
*qdev,
if (r)
return -ENOMEM;
r = drm_gem_handle_create(file_priv, local_gobj, handle);
- if (r)
+ if (r) {
+ drm_gem_object_put(local_gobj);
return r;
+ }
if (gobj)
*gobj = local_gobj;
--
2.25.1