Skip to contentSkip to conversation

sunxvr2500fb: Fix pseudo_palette array size

PATCH In review Antonino A. Daplas 1 participant 1 message Jun 2, 2007 Framebuffer layer

lore
Share & tools
lore
#0 lore raw

PATCH 14/24 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.

---

 drivers/video/sunxvr2500.c |   17 ++++++++---------
 1 files changed, 8 insertions(+), 9 deletions(-)
drivers/video/sunxvr2500.c +8 -9
index 4316c7f..c3869a9 100644
@@ -28,7 +28,7 @@ struct s3d_info {
 	unsigned int		depth;
 	unsigned int		fb_size;
 
-	u32			pseudo_palette[256];
+	u32			pseudo_palette[16];
 };
 
 static int __devinit s3d_get_props(struct s3d_info *sp)
@@ -52,15 +52,14 @@ static int s3d_setcolreg(unsigned regno,
 {
 	u32 value;
 
-	if (regno >= 256)
-		return 1;
+	if (regno < 16) {
+		red >>= 8;
+		green >>= 8;
+		blue >>= 8;
 
-	red >>= 8;
-	green >>= 8;
-	blue >>= 8;
-
-	value = (blue << 24) | (green << 16) | (red << 8);
-	((u32 *)info->pseudo_palette)[regno] = value;
+		value = (blue << 24) | (green << 16) | (red << 8);
+		((u32 *)info->pseudo_palette)[regno] = value;
+	}
 
 	return 0;
 }

-------------------------------------------------------------------------
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/