[PATCH 3/3] video: fbdev: fix the out-of-bounds access cr_data->bak

Wenjia Zhao driverfuzzing at gmail.com
Mon Feb 1 15:56:34 UTC 2021


The size of cr_data->bak is CURSOR_SIZE/4, however the access size in
the is
CURSOR_SIZE in the loop. It causes the out-of-bounds access.

Signed-off-by: Wenjia Zhao <driverfuzzing at gmail.com>
---
 drivers/video/fbdev/via/viafbdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/video/fbdev/via/viafbdev.c b/drivers/video/fbdev/via/viafbdev.c
index 22deb34..ef217cc 100644
--- a/drivers/video/fbdev/via/viafbdev.c
+++ b/drivers/video/fbdev/via/viafbdev.c
@@ -839,7 +839,7 @@ static int viafb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 	if (cursor->set & FB_CUR_SETSHAPE) {
 		struct {
 			u8 data[CURSOR_SIZE];
-			u32 bak[CURSOR_SIZE / 4];
+			u32 bak[CURSOR_SIZE];
 		} *cr_data = kzalloc(sizeof(*cr_data), GFP_ATOMIC);
 		int size = ((cursor->image.width + 7) >> 3) *
 			cursor->image.height;
-- 
2.7.4



More information about the dri-devel mailing list