drm/msm: fix potential memleak in error branch
authorBernard Zhao <bernard@vivo.com>
Fri, 12 Jun 2020 01:23:49 +0000 (09:23 +0800)
committerRob Clark <robdclark@chromium.org>
Fri, 12 Jun 2020 03:06:12 +0000 (20:06 -0700)
In function msm_submitqueue_create, the queue is a local
variable, in return -EINVAL branch, queue didn`t add to ctx`s
list yet, and also didn`t kfree, this maybe bring in potential
memleak.

Signed-off-by: Bernard Zhao <bernard@vivo.com>
[trivial commit msg fixup]
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/msm_submitqueue.c

index 001fbf5..a1d94be 100644 (file)
@@ -71,8 +71,10 @@ int msm_submitqueue_create(struct drm_device *drm, struct msm_file_private *ctx,
        queue->flags = flags;
 
        if (priv->gpu) {
-               if (prio >= priv->gpu->nr_rings)
+               if (prio >= priv->gpu->nr_rings) {
+                       kfree(queue);
                        return -EINVAL;
+               }
 
                queue->prio = prio;
        }