drm/mediatek/dp: Fix spurious kfree()
drm_edid_to_sad() might return an error or just zero. If that is the
case, we must not free the SADs because there was no allocation in
the first place.
Fixes: dab12fa8d2 ("drm/mediatek/dp: fix memory leak on ->get_edid callback audio detection")
Signed-off-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.kernel.org/project/linux-mediatek/patch/20240604083337.1879188-1-mwalle@kernel.org/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
This commit is contained in:
committed by
Chun-Kuang Hu
parent
9ff6df49e6
commit
8ad49a92cf
@@ -2073,9 +2073,15 @@ static const struct drm_edid *mtk_dp_edid_read(struct drm_bridge *bridge,
|
||||
*/
|
||||
const struct edid *edid = drm_edid_raw(drm_edid);
|
||||
struct cea_sad *sads;
|
||||
int ret;
|
||||
|
||||
audio_caps->sad_count = drm_edid_to_sad(edid, &sads);
|
||||
kfree(sads);
|
||||
ret = drm_edid_to_sad(edid, &sads);
|
||||
/* Ignore any errors */
|
||||
if (ret < 0)
|
||||
ret = 0;
|
||||
if (ret)
|
||||
kfree(sads);
|
||||
audio_caps->sad_count = ret;
|
||||
|
||||
/*
|
||||
* FIXME: This should use connector->display_info.has_audio from
|
||||
|
||||
Reference in New Issue
Block a user