Skip to contentSkip to conversation

drm/omap: Use after free in omap_connector_destroy()

PATCH In review Dan Carpenter 2 participants 2 messages Oct 1, 2018

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 drm/omap: Use after free in omap_connector_destroy()

We can free "omap_connector" until the end of the function.

Fixes 949ea2ef3fed ("drm/omap: Don't call HPD registration operations recursively")
drivers/gpu/drm/omapdrm/omap_connector.c +2 -1
index 98f5ca29444a..b81302c4bf9e 100644
@@ -164,10 +164,11 @@ static void omap_connector_destroy(struct drm_connector *connector)
 
 	drm_connector_unregister(connector);
 	drm_connector_cleanup(connector);
-	kfree(omap_connector);
 
 	omapdss_device_put(omap_connector->output);
 	omapdss_device_put(omap_connector->display);
+
+	kfree(omap_connector);
 }
 
 #define MAX_EDID  512
#1 lore raw

Hi Dan,

Thank you for the patch.

Quoted 4 lines · On Monday, 1 October 2018 19:45:05 EEST Dan Carpenter wrote:

We can free "omap_connector" until the end of the function.

Fixes 949ea2ef3fed ("drm/omap: Don't call HPD registration operations

recursively") Signed-off-by: Dan Carpenter <[email protected]>

This has already been fixed by https://www.spinics.net/lists/dri-devel/
msg190817.html.

Quoted 19 lines
(quoted diff) +0 -0

b/drivers/gpu/drm/omapdrm/omap_connector.c index 98f5ca29444a..b81302c4bf9e 100644

drivers/gpu/drm/omapdrm/omap_connector.c +2 -1
@@ -164,10 +164,11 @@ static void omap_connector_destroy(struct
 drm_connector *connector)
 
 	drm_connector_unregister(connector);
 	drm_connector_cleanup(connector);
-	kfree(omap_connector);
 
 	omapdss_device_put(omap_connector->output);
 	omapdss_device_put(omap_connector->display);
+
+	kfree(omap_connector);
 }
 

#define MAX_EDID 512

Signature · 10 lines
Regards,

Laurent Pinchart



_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel