From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932326AbdCTSaw (ORCPT ); Mon, 20 Mar 2017 14:30:52 -0400 Received: from mx02-sz.bfs.de ([194.94.69.103]:27119 "EHLO mx02-sz.bfs.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756263AbdCTSat (ORCPT ); Mon, 20 Mar 2017 14:30:49 -0400 Message-ID: <58D01FD3.4040007@bfs.de> Date: Mon, 20 Mar 2017 19:30:43 +0100 From: walter harms Reply-To: wharms@bfs.de User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.1.16) Gecko/20101125 SUSE/3.0.11 Thunderbird/3.0.11 MIME-Version: 1.0 To: Colin King CC: Patrik Jakobsson , David Airlie , dri-devel@lists.freedesktop.org, kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] drm/gma500: fix memory leak on edid References: <20170320175601.23149-1-colin.king@canonical.com> In-Reply-To: <20170320175601.23149-1-colin.king@canonical.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am 20.03.2017 18:56, schrieb Colin King: > From: Colin Ian King > > edid is allocated on the call to psb_intel_sdvo_get_edid but not > kfree'd at all, causing a memory leak. Fix this by kfree'ing > the edid. (This may be null, but kfree can handle null frees). > > Detected by CoverityScan, CID#1090730 ("Resource Leak") > > Fixes: 5736995b473b ("gma500: Replace SDVO code with slightly modified version from i915") > Signed-off-by: Colin Ian King > --- > drivers/gpu/drm/gma500/psb_intel_sdvo.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/gma500/psb_intel_sdvo.c b/drivers/gpu/drm/gma500/psb_intel_sdvo.c > index e787d376ba67..f38e6ad1ab9b 100644 > --- a/drivers/gpu/drm/gma500/psb_intel_sdvo.c > +++ b/drivers/gpu/drm/gma500/psb_intel_sdvo.c > @@ -1650,6 +1650,7 @@ static bool psb_intel_sdvo_detect_hdmi_audio(struct drm_connector *connector) > edid = psb_intel_sdvo_get_edid(connector); > if (edid != NULL && edid->input & DRM_EDID_INPUT_DIGITAL) is the check here needed at all ? drm_detect_monitor_audio--> drm_find_cea_extension -->drm_find_edid_extension (will check for NULL) I missed DRM_EDID_INPUT_DIGITAL some where ? NTL i would expected drm_detect_monitor_audio to hanle it savely. re, wh > has_audio = drm_detect_monitor_audio(edid); > + kfree(edid); > > return has_audio; > }