drm/mediatek/dp: Fix spurious kfree()
[ Upstream commit8ad49a92cf] 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> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
7d44a63b48
commit
c5d98f78ef
@@ -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