Commit f2c13863 authored by Antonino Daplas's avatar Antonino Daplas Committed by David S. Miller

[VIDEO] sunxvr2500fb: Fix pseudo_palette array size

- the pseudo_palette is only 16 elements long.
- the pseudo_palette has only 16 elements. Do not write if regno (the array
  index) is more than 15.
Signed-off-by: default avatarAntonino Daplas <adaplas@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d2fa9e05
...@@ -28,7 +28,7 @@ struct s3d_info { ...@@ -28,7 +28,7 @@ struct s3d_info {
unsigned int depth; unsigned int depth;
unsigned int fb_size; unsigned int fb_size;
u32 pseudo_palette[256]; u32 pseudo_palette[16];
}; };
static int __devinit s3d_get_props(struct s3d_info *sp) static int __devinit s3d_get_props(struct s3d_info *sp)
...@@ -52,15 +52,14 @@ static int s3d_setcolreg(unsigned regno, ...@@ -52,15 +52,14 @@ static int s3d_setcolreg(unsigned regno,
{ {
u32 value; u32 value;
if (regno >= 256) if (regno < 16) {
return 1;
red >>= 8; red >>= 8;
green >>= 8; green >>= 8;
blue >>= 8; blue >>= 8;
value = (blue << 24) | (green << 16) | (red << 8); value = (blue << 24) | (green << 16) | (red << 8);
((u32 *)info->pseudo_palette)[regno] = value; ((u32 *)info->pseudo_palette)[regno] = value;
}
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment