sisfb: Fix pseudo_palette array size and overrun
PATCH 24/24 sisfb: Fix pseudo_palette array size and overrun
- the pseudo_palette is only 16 elements long.
- do not write to the pseudo_palette if regno (array index) is more than 15.
Signed-off-by Antonino Daplas <[email protected]>
---
drivers/video/sis/sis.h | 2 +- drivers/video/sis/sis_main.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletions(-)
drivers/video/sis/sis.h +1 -1
@@ -479,7 +479,7 @@ struct sis_video_info {struct fb_var_screeninfo default_var;struct fb_fix_screeninfo sisfb_fix; -u32 pseudo_palette[17 ]; +u32 pseudo_palette[16 ];struct sisfb_monitor {u16 hmin;
drivers/video/sis/sis_main.c +6 -0
@@ -1405,12 +1405,18 @@ sisfb_setcolreg(unsigned regno, unsigned }break ;case 16 : +if (regno >=16 ) +break ; + ((u32 *)(info->pseudo_palette))[regno] = (red &0xf800 ) | ((green &0xfc00 ) >>5 ) | ((blue &0xf800 ) >>11 );break ;case 32 : +if (regno >=16 ) +break ; + red >>=8 ; green >>=8 ; blue >>=8 ;
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/