]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm: Fix object leak in DRM_IOCTL_GEM_CHANGE_HANDLE
authorKarol Wachowski <karol.wachowski@linux.intel.com>
Fri, 12 Dec 2025 13:41:33 +0000 (14:41 +0100)
committerChristian König <christian.koenig@amd.com>
Fri, 12 Dec 2025 13:52:37 +0000 (14:52 +0100)
Add missing drm_gem_object_put() call when drm_gem_object_lookup()
successfully returns an object. This fixes a GEM object reference
leak that can prevent driver modules from unloading when using
prime buffers.

Fixes: 53096728b891 ("drm: Add DRM prime interface to reassign GEM handle")
Cc: <stable@vger.kernel.org> # v6.18+
Signed-off-by: Karol Wachowski <karol.wachowski@linux.intel.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Maciej Falkowski <maciej.falkowski@linux.intel.com>
Signed-off-by: Christian König <christian.koenig@amd.com>
Link: https://lore.kernel.org/r/20251212134133.475218-1-karol.wachowski@linux.intel.com
drivers/gpu/drm/drm_gem.c

index f884d155a832a3ad2828371f107d301a79821d01..3b9df655e837724d49928c48b11b0f19fb4ae49d 100644 (file)
@@ -979,8 +979,10 @@ int drm_gem_change_handle_ioctl(struct drm_device *dev, void *data,
        if (!obj)
                return -ENOENT;
 
-       if (args->handle == args->new_handle)
-               return 0;
+       if (args->handle == args->new_handle) {
+               ret = 0;
+               goto out;
+       }
 
        mutex_lock(&file_priv->prime.lock);
 
@@ -1012,6 +1014,8 @@ int drm_gem_change_handle_ioctl(struct drm_device *dev, void *data,
 
 out_unlock:
        mutex_unlock(&file_priv->prime.lock);
+out:
+       drm_gem_object_put(obj);
 
        return ret;
 }