video: ipu: Fix dereferencing NULL pointer problem
PATCH 1/2 video: ipu: Fix dereferencing NULL pointer problem
The clk_set_rate function dereferences the clk pointer without checking whether it is NULL. This may cause problem when clk is NULL.
--- drivers/video/ipu_common.c | 4 ++++ 1 file changed, 4 insertions(+)
drivers/video/ipu_common.c +4 -0
@@ -134,6 +134,10 @@ int clk_set_rate(struct clk *clk, unsigned long rate) {if (clk && clk->set_rate) clk->set_rate (clk, rate); + +if (!clk) +return 0 ; +return clk->rate; }
Signature · 1 line
2.14.1
PATCH 2/2 video: Support multiple lines version string display
The calculation of left space for version string is not correct, should use VIDEO_COLS not VIDEO_LINE_LEN / 2, otherwise we will get larger space than actual have and cause string to overlay logo picture.
Also current version string display only supports two lines words at max. This also causes overlay when the LCD pixel colume size is not enough.
--- drivers/video/cfb_console.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-)
drivers/video/cfb_console.c +23 -7
@@ -1900,16 +1900,32 @@ static void *video_logo(void)sprintf (info," %s" , version_string);#ifndef CONFIG_HIDE_LOGO_VERSION - space = (VIDEO_LINE_LEN /2 -VIDEO_INFO_X ) /VIDEO_FONT_WIDTH ; + space = (VIDEO_COLS -VIDEO_INFO_X ) /VIDEO_FONT_WIDTH ; len =strlen (info);if (len > space) { -video_drawchars (VIDEO_INFO_X ,VIDEO_INFO_Y , - (uchar *) info, space); -video_drawchars (VIDEO_INFO_X +VIDEO_FONT_WIDTH , -VIDEO_INFO_Y +VIDEO_FONT_HEIGHT , - (uchar *) info + space, len - space); - y_off =1 ; +int xx =VIDEO_INFO_X , yy =VIDEO_INFO_Y ; +uchar *p = (uchar *) info; + +while (len) { +if (len > space) { +video_drawchars (xx, yy, p, space); + len -= space; + + p = (uchar *)p + space; + +if (!y_off) { + xx +=VIDEO_FONT_WIDTH ; + space--; + } + yy +=VIDEO_FONT_HEIGHT ; + + y_off++; + }else { +video_drawchars (xx, yy, p, len); + len =0 ; + } + } }else video_drawstring (VIDEO_INFO_X ,VIDEO_INFO_Y , (uchar *) info);
Signature · 1 line
2.14.1
PATCH 2/2 video: Support multiple lines version string display
Quoted 11 lines · On Tue, 2 Jan 2018 15:25:37 +0800 Peng Fan peng.fan at nxp.com wrote:
The calculation of left space for version string is not correct, should use
VIDEO_COLSnotVIDEO_LINE_LEN/ 2, otherwise we will get larger space than actual have and cause string to overlay logo picture.Also current version string display only supports two lines words at max. This also causes overlay when the LCD pixel colume size is not enough.
Signed-off-by Peng Fan <[email protected]>--- drivers/video/cfb_console.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-)
applied to u-boot-video/master, thanks!
--
Anatolij
PATCH v2 1/2 video: ipu: Fix dereferencing NULL pointer problem
In reply to Peng FanFrom: Peng Fan <[email protected]>
The clk_set_rate function dereferences the clk pointer without checking whether it is NULL. This may cause problem when clk is NULL.
---
Changes in v2:
- move the NULL check to top of function
drivers/video/ipu_common.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
drivers/video/ipu_common.c +5 -1
@@ -132,8 +132,12 @@ struct clk *clk_get_parent(struct clk *clk)int clk_set_rate (struct clk *clk,unsigned long rate) { -if (clk && clk->set_rate) +if (!clk) +return 0 ; + +if (clk->set_rate) clk->set_rate (clk, rate); +return clk->rate; }
Signature · 1 line
2.11.0
PATCH v2 1/2 video: ipu: Fix dereferencing NULL pointer problem
Quoted 5 lines · On Wed, 3 Jan 2018 12:20:49 +0100 Anatolij Gustschin agust at denx.de wrote:
From: Peng Fan <[email protected]>
The
clk_set_ratefunction dereferences the clk pointer without checking whether it is NULL. This may cause problem when clk is NULL.
Quoted 8 lines
Signed-off-by Peng Fan <[email protected]>Signed-off-by Anatolij Gustschin <[email protected]>---
Changes in v2:
- move the NULL check to top of functiondrivers/video/ipu_common.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
applied to u-boot-video/master, thanks!
--
Anatolij