All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/exynos: Fix (more) freeing issues in exynos_drm_drv.c
@ 2014-03-17  3:28 ` Daniel Kurtz
  0 siblings, 0 replies; 17+ messages in thread
From: Daniel Kurtz @ 2014-03-17  3:28 UTC (permalink / raw)
  To: Inki Dae, Sachin Kamat
  Cc: Kukjin Kim, Seung-Woo Kim, linux-kernel, dri-devel, Kyungmin Park,
	linux-samsung-soc, linux-arm-kernel

The following commit [0] fixed a use-after-free, but left the subdrv open
in the error path.

[0] commit 6ca605f7c70895a35737435f17ae9cc5e36f1466
drm/exynos: Fix freeing issues in exynos_drm_drv.c

Change-Id: I452e944bf090fb11434d9e34213c890c41c15d73
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
---
 drivers/gpu/drm/exynos/exynos_drm_drv.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index 215131a..c204b4e 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -172,20 +172,24 @@ static int exynos_drm_open(struct drm_device *dev, struct drm_file *file)
 
 	ret = exynos_drm_subdrv_open(dev, file);
 	if (ret)
-		goto out;
+		goto err_file_priv_free;
 
 	anon_filp = anon_inode_getfile("exynos_gem", &exynos_drm_gem_fops,
 					NULL, 0);
 	if (IS_ERR(anon_filp)) {
 		ret = PTR_ERR(anon_filp);
-		goto out;
+		goto err_subdrv_close;
 	}
 
 	anon_filp->f_mode = FMODE_READ | FMODE_WRITE;
 	file_priv->anon_filp = anon_filp;
 
 	return ret;
-out:
+
+err_subdrv_close:
+	exynos_drm_subdrv_close(dev, file);
+
+err_file_priv_free:
 	kfree(file_priv);
 	file->driver_priv = NULL;
 	return ret;
-- 
1.9.0.279.gdc9e3eb

^ permalink raw reply related	[flat|nested] 17+ messages in thread
* [PATCH] drm/exynos: Fix (more) freeing issues in exynos_drm_drv.c
@ 2014-03-17  3:28 ` Daniel Kurtz
  0 siblings, 0 replies; 17+ messages in thread
From: Daniel Kurtz @ 2014-03-17  3:28 UTC (permalink / raw)
  To: Inki Dae, Sachin Kamat
  Cc: Kukjin Kim, Seung-Woo Kim, linux-kernel, dri-devel, Kyungmin Park,
	linux-samsung-soc, linux-arm-kernel

The following commit [0] fixed a use-after-free, but left the subdrv open
in the error path.

[0] commit 6ca605f7c70895a35737435f17ae9cc5e36f1466
drm/exynos: Fix freeing issues in exynos_drm_drv.c

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
---
Hi, I noticed this when reviewing some recent patches.
I am only able to compile test this patch.

 drivers/gpu/drm/exynos/exynos_drm_drv.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index 215131a..c204b4e 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -172,20 +172,24 @@ static int exynos_drm_open(struct drm_device *dev, struct drm_file *file)
 
 	ret = exynos_drm_subdrv_open(dev, file);
 	if (ret)
-		goto out;
+		goto err_file_priv_free;
 
 	anon_filp = anon_inode_getfile("exynos_gem", &exynos_drm_gem_fops,
 					NULL, 0);
 	if (IS_ERR(anon_filp)) {
 		ret = PTR_ERR(anon_filp);
-		goto out;
+		goto err_subdrv_close;
 	}
 
 	anon_filp->f_mode = FMODE_READ | FMODE_WRITE;
 	file_priv->anon_filp = anon_filp;
 
 	return ret;
-out:
+
+err_subdrv_close:
+	exynos_drm_subdrv_close(dev, file);
+
+err_file_priv_free:
 	kfree(file_priv);
 	file->driver_priv = NULL;
 	return ret;
-- 
1.9.0.279.gdc9e3eb

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

end of thread, other threads:[~2014-03-18  7:00 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-17  3:28 [PATCH] drm/exynos: Fix (more) freeing issues in exynos_drm_drv.c Daniel Kurtz
2014-03-17  3:28 ` Daniel Kurtz
2014-03-17  3:28 ` Daniel Kurtz
2014-03-18  5:03 ` Inki Dae
2014-03-18  5:03   ` Inki Dae
2014-03-18  5:45   ` Kukjin Kim
2014-03-18  5:45     ` Kukjin Kim
2014-03-18  6:08     ` Inki Dae
2014-03-18  6:08       ` Inki Dae
2014-03-18  6:59       ` Daniel Kurtz
2014-03-18  6:59         ` Daniel Kurtz
2014-03-18  6:59         ` Daniel Kurtz
  -- strict thread matches above, loose matches on Subject: below --
2014-03-17  3:28 Daniel Kurtz
2014-03-17  3:28 ` Daniel Kurtz
2014-03-17  3:28 ` Daniel Kurtz
2014-03-17  4:15 ` Sachin Kamat
2014-03-17  4:15   ` Sachin Kamat

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.