diff options
author | Bernard Zhao <bernard@vivo.com> | 2020-06-12 09:23:49 +0800 |
---|---|---|
committer | Rob Clark <robdclark@chromium.org> | 2020-06-11 20:06:12 -0700 |
commit | 177d3819633cd520e3f95df541a04644aab4c657 (patch) | |
tree | 772b4d3fbd3022d8efa50e60e9126b987f07e822 /drivers/gpu/drm/msm/msm_submitqueue.c | |
parent | 5fddd4f5db873035cbf916495e8a8769f77673bc (diff) |
drm/msm: fix potential memleak in error branch
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>
Diffstat (limited to 'drivers/gpu/drm/msm/msm_submitqueue.c')
-rw-r--r-- | drivers/gpu/drm/msm/msm_submitqueue.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/msm/msm_submitqueue.c b/drivers/gpu/drm/msm/msm_submitqueue.c index 001fbf537440..a1d94be7883a 100644 --- a/drivers/gpu/drm/msm/msm_submitqueue.c +++ b/drivers/gpu/drm/msm/msm_submitqueue.c @@ -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; } |