[alsa-devel] [PATCH] ASoC: hdac_hdmi: Dereference 'edev' after checking for NULL

Subhransu S. Prusty subhransu.s.prusty at intel.com
Wed Feb 17 10:21:52 CET 2016


On Wed, Feb 17, 2016 at 07:09:59AM -0200, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam at nxp.com>
> 
> Commit 4a3478debf36 ("ASoC: hdac_hdmi: Add jack reporting") 
> leads to the following Smatch complaint:
> 
> sound/soc/codecs/hdac_hdmi.c:971 hdac_hdmi_present_sense()
>          warn: variable dereferenced before check 'edev' (see line 967)
> 
> ,so deference 'edev' after checking for NULL.

This NULL check is not required, can be removed.

edev object is expected to be present when the present_sense is called. This
is called from places where this edev object is already available. 

Regards,
Subhransu

> 
> Reported-by: Dan Carpenter <dan.carpenter at oracle.com>
> Signed-off-by: Fabio Estevam <fabio.estevam at nxp.com>
> ---
>  sound/soc/codecs/hdac_hdmi.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/sound/soc/codecs/hdac_hdmi.c b/sound/soc/codecs/hdac_hdmi.c
> index 36f1200..920af2f 100644
> --- a/sound/soc/codecs/hdac_hdmi.c
> +++ b/sound/soc/codecs/hdac_hdmi.c
> @@ -964,13 +964,15 @@ static int hdac_hdmi_add_cvt(struct hdac_ext_device *edev, hda_nid_t nid)
>  static void hdac_hdmi_present_sense(struct hdac_hdmi_pin *pin, int repoll)
>  {
>  	struct hdac_ext_device *edev = pin->edev;
> -	struct hdac_hdmi_priv *hdmi = edev->private_data;
> +	struct hdac_hdmi_priv *hdmi;
>  	struct hdac_hdmi_pcm *pcm;
>  	int val;
>  
>  	if (!edev)
>  		return;
>  
> +	hdmi = edev->private_data;
> +
>  	pin->repoll_count = repoll;
>  
>  	pm_runtime_get_sync(&edev->hdac.dev);
> -- 
> 1.9.1
> 

-- 


More information about the Alsa-devel mailing list