mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-09 22:50:41 +00:00
[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: Antonino Daplas <adaplas@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d2fa9e05e3
commit
f2c1386386
@ -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,
|
|||||||
{
|
{
|
||||||
u32 value;
|
u32 value;
|
||||||
|
|
||||||
if (regno >= 256)
|
if (regno < 16) {
|
||||||
return 1;
|
red >>= 8;
|
||||||
|
green >>= 8;
|
||||||
|
blue >>= 8;
|
||||||
|
|
||||||
red >>= 8;
|
value = (blue << 24) | (green << 16) | (red << 8);
|
||||||
green >>= 8;
|
((u32 *)info->pseudo_palette)[regno] = value;
|
||||||
blue >>= 8;
|
}
|
||||||
|
|
||||||
value = (blue << 24) | (green << 16) | (red << 8);
|
|
||||||
((u32 *)info->pseudo_palette)[regno] = value;
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user