]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/exynos/vidi: fix memory leak in .get_modes()
authorJani Nikula <jani.nikula@intel.com>
Thu, 30 May 2024 10:01:51 +0000 (13:01 +0300)
committerInki Dae <inki.dae@samsung.com>
Mon, 10 Jun 2024 06:05:43 +0000 (15:05 +0900)
The duplicated EDID is never freed. Fix it.

Cc: stable@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_vidi.c

index fab135308b70fb49095c7f0ee6d3e13529da54ff..11a720fef32b48581268df4d76f7ceb0336afc09 100644 (file)
@@ -309,6 +309,7 @@ static int vidi_get_modes(struct drm_connector *connector)
        struct vidi_context *ctx = ctx_from_connector(connector);
        struct edid *edid;
        int edid_len;
+       int count;
 
        /*
         * the edid data comes from user side and it would be set
@@ -328,7 +329,11 @@ static int vidi_get_modes(struct drm_connector *connector)
 
        drm_connector_update_edid_property(connector, edid);
 
-       return drm_add_edid_modes(connector, edid);
+       count = drm_add_edid_modes(connector, edid);
+
+       kfree(edid);
+
+       return count;
 }
 
 static const struct drm_connector_helper_funcs vidi_connector_helper_funcs = {