The patch titled tridentfb: fix pseudo_palette array overrun in setcolreg has been added to the -mm tree. Its filename is tridentfb-fix-pseudo_palette-array-overrun-in-setcolreg.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: tridentfb: fix pseudo_palette array overrun in setcolreg From: "Antonino A. Daplas" <adaplas@xxxxxxxxx> 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@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/video/tridentfb.c | 30 ++++++++++++++++-------------- 1 files changed, 16 insertions(+), 14 deletions(-) diff -puN drivers/video/tridentfb.c~tridentfb-fix-pseudo_palette-array-overrun-in-setcolreg drivers/video/tridentfb.c --- a/drivers/video/tridentfb.c~tridentfb-fix-pseudo_palette-array-overrun-in-setcolreg +++ a/drivers/video/tridentfb.c @@ -976,7 +976,7 @@ static int tridentfb_setcolreg(unsigned return 1; - if (bpp==8) { + if (bpp == 8) { t_outb(0xFF,0x3C6); t_outb(regno,0x3C8); @@ -984,19 +984,21 @@ static int tridentfb_setcolreg(unsigned t_outb(green>>10,0x3C9); t_outb(blue>>10,0x3C9); - } else if (bpp == 16) { /* RGB 565 */ - u32 col; - - col = (red & 0xF800) | ((green & 0xFC00) >> 5) | - ((blue & 0xF800) >> 11); - col |= col << 16; - ((u32 *)(info->pseudo_palette))[regno] = col; - } else if (bpp == 32) /* ARGB 8888 */ - ((u32*)info->pseudo_palette)[regno] = - ((transp & 0xFF00) <<16) | - ((red & 0xFF00) << 8) | - ((green & 0xFF00)) | - ((blue & 0xFF00)>>8); + } else if (regno < 16) { + if (bpp == 16) { /* RGB 565 */ + u32 col; + + col = (red & 0xF800) | ((green & 0xFC00) >> 5) | + ((blue & 0xF800) >> 11); + col |= col << 16; + ((u32 *)(info->pseudo_palette))[regno] = col; + } else if (bpp == 32) /* ARGB 8888 */ + ((u32*)info->pseudo_palette)[regno] = + ((transp & 0xFF00) <<16) | + ((red & 0xFF00) << 8) | + ((green & 0xFF00)) | + ((blue & 0xFF00)>>8); + } // debug("exit\n"); return 0; _ Patches currently in -mm which might be from adaplas@xxxxxxxxx are origin.patch fbcon-smart-blitter-usage-for-scrolling.patch nvidiafb-adjust-flags-to-take-advantage-of-new-scroll-method.patch fbcon-cursor-blink-control.patch fbcon-use-struct-device-instead-of-struct-class_device.patch fbdev-move-arch-specific-bits-to-their-respective.patch fbdev-detect-primary-display-device.patch fbcon-allow-fbcon-to-use-the-primary-display-driver.patch fbcon-allow-fbcon-to-use-the-primary-display-driver-fix.patch fbcon-allow-fbcon-to-use-the-primary-display-driver-fix-2.patch radeonfb-add-support-for-radeon-xpress-200m-rs485.patch nvidiafb-add-proper-support-for-geforce-7600-chipset.patch pm2fb-white-spaces-clean-up.patch fbcon-set_con2fb_map-fixes.patch fbcon-revise-primary-device-selection.patch fbdev-fbcon-console-unregistration-from-unregister_framebuffer.patch fbdev-fbcon-console-unregistration-from-unregister_framebuffer-fix.patch vt-add-comment-for-unbind_con_driver.patch 68328fb-the-pseudo_palette-is-only-16-elements-long.patch controlfb-the-pseudo_palette-is-only-16-elements-long.patch cyblafb-fix-pseudo_palette-array-overrun-in-setcolreg.patch epson1355fb-color-setting-fixes.patch ffb-the-pseudo_palette-is-only-16-elements-long.patch fm2fb-the-pseudo_palette-is-only-16-elements-long.patch gbefb-the-pseudo_palette-is-only-16-elements-long.patch macfb-fix-pseudo_palette-size-and-overrun.patch offb-the-pseudo_palette-is-only-16-elements-long.patch platinumfb-the-pseudo_palette-is-only-16-elements.patch pvr2fb-fix-pseudo_palette-array-overrun-and-typecast.patch q40fb-the-pseudo_palette-is-only-16-elements-long.patch sgivwfb-the-pseudo_palette-is-only-16-elements-long.patch sunxvr2500fb-fix-pseudo_palette-array-size.patch sunxvr500fb-fix-pseudo_palette-array-size.patch tgafb-actually-allocate-memory-for-the-pseudo_palette.patch tridentfb-fix-pseudo_palette-array-overrun-in-setcolreg.patch tx3912fb-fix-improper-assignment-of-info-pseudo_palette.patch atyfb-the-pseudo_palette-is-only-16-elements-long.patch radeonfb-the-pseudo_palette-is-only-16-elements-long.patch i810fb-the-pseudo_palette-is-only-16-elements-long.patch intelfb-the-pseudo_palette-is-only-16-elements-long.patch sisfb-fix-pseudo_palette-array-size-and-overrun.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html