Re: OMAPDSS: remove dispc's dependency to VENC/HDMI

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 27/08/13 04:20, Dan Carpenter wrote:
> Hello Tomi Valkeinen,
> 
> This is a semi-automatic email about new static checker warnings.
> 
> The patch 5391e87d1259: "OMAPDSS: remove dispc's dependency to 
> VENC/HDMI" from May 16, 2013, leads to the following Smatch complaint:
> 
> drivers/video/omap2/dss/hdmi.c:672 omapdss_hdmi_display_set_timing()
> 	 error: we previously assumed 't' could be null (see line 669)
> 
> drivers/video/omap2/dss/hdmi.c
>    668		t = hdmi_get_timings();
>    669		if (t != NULL)
>                     ^^^^^^^^^
> Existing check.
> 
>    670			hdmi.ip_data.cfg = *t;
>    671	
>    672		dispc_set_tv_pclk(t->timings.pixel_clock * 1000);
>                                   ^^^^^^^^^^^^^^^^^^^^^^
> Patch added a dereference.
> 
>    673	
>    674		mutex_unlock(&hdmi.lock);
> 

Thanks. I've made a fix, below.

 Tomi

commit 70218db3effca57252625042a2b2c740fd3604ba (HEAD, work/fixes)
Author: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
Date:   Tue Aug 27 14:11:48 2013 +0300

    OMAPDSS: HDMI: Fix possible NULL reference
    
    Commit 5391e87d1259 (OMAPDSS: remove dispc's dependency to VENC/HDMI)
    introduced a possible NULL reference bug in the HDMI driver when setting
    timings. In practice the bug shouldn't happen, as the timings have been
    verified earlier, and thus the timings should always be ok.
    
    Fix the possible issue by moving the use of the timings pointer inside
    the NULL check.
    
    Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>

diff --git a/drivers/video/omap2/dss/hdmi.c b/drivers/video/omap2/dss/hdmi.c
index 44a885b..ea97854 100644
--- a/drivers/video/omap2/dss/hdmi.c
+++ b/drivers/video/omap2/dss/hdmi.c
@@ -666,10 +666,11 @@ void omapdss_hdmi_display_set_timing(struct omap_dss_device *dssdev,
 	hdmi.ip_data.cfg.cm = cm;
 
 	t = hdmi_get_timings();
-	if (t != NULL)
+	if (t != NULL) {
 		hdmi.ip_data.cfg = *t;
 
-	dispc_set_tv_pclk(t->timings.pixel_clock * 1000);
+		dispc_set_tv_pclk(t->timings.pixel_clock * 1000);
+	}
 
 	mutex_unlock(&hdmi.lock);
 }


Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux