linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] drm/v3d: Fix memory leak in v3d_submit_cl_ioctl
@ 2019-10-21 18:52 Navid Emamdoost
  2019-10-21 20:40 ` Markus Elfring
  2019-10-22  9:36 ` Daniel Vetter
  0 siblings, 2 replies; 7+ messages in thread
From: Navid Emamdoost @ 2019-10-21 18:52 UTC (permalink / raw)
  Cc: emamd001, kjlu, smccaman, Navid Emamdoost, Eric Anholt,
	David Airlie, Daniel Vetter, dri-devel, linux-kernel

In the impelementation of v3d_submit_cl_ioctl() there are two memory
leaks. One is when allocation for bin fails, and the other is when bin
initialization fails. If kcalloc fails to allocate memory for bin then
render->base should be put. Also, if v3d_job_init() fails to initialize
bin->base then allocated memory for bin should be released.

Fixes: a783a09ee76d ("drm/v3d: Refactor job management.")
Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
---
 drivers/gpu/drm/v3d/v3d_gem.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/v3d/v3d_gem.c b/drivers/gpu/drm/v3d/v3d_gem.c
index 5d80507b539b..19c092d75266 100644
--- a/drivers/gpu/drm/v3d/v3d_gem.c
+++ b/drivers/gpu/drm/v3d/v3d_gem.c
@@ -557,13 +557,16 @@ v3d_submit_cl_ioctl(struct drm_device *dev, void *data,
 
 	if (args->bcl_start != args->bcl_end) {
 		bin = kcalloc(1, sizeof(*bin), GFP_KERNEL);
-		if (!bin)
+		if (!bin) {
+			v3d_job_put(&render->base);
 			return -ENOMEM;
+		}
 
 		ret = v3d_job_init(v3d, file_priv, &bin->base,
 				   v3d_job_free, args->in_sync_bcl);
 		if (ret) {
 			v3d_job_put(&render->base);
+			kfree(bin);
 			return ret;
 		}
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-10-23 19:00 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-21 18:52 [PATCH] drm/v3d: Fix memory leak in v3d_submit_cl_ioctl Navid Emamdoost
2019-10-21 20:40 ` Markus Elfring
2019-10-22  7:30   ` Markus Elfring
2019-10-22  9:36 ` Daniel Vetter
2019-10-23  3:53   ` Navid Emamdoost
2019-10-23  9:16     ` Daniel Vetter
2019-10-23 18:59       ` Daniel Vetter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).