[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20250614051100.3501316-1-alexguo1023@gmail.com>
Date: Sat, 14 Jun 2025 01:11:00 -0400
From: Alex Guo <alexguo1023@...il.com>
To: deller@....de
Cc: alexguo1023@...il.com,
linux-fbdev@...r.kernel.org,
dri-devel@...ts.freedesktop.org,
linux-kernel@...r.kernel.org
Subject: [PATCH] fbdev: sm501: Fix potential divide by zero
Variable var->pixclock can be set by user. In case it equals to
zero, divide by zero would occur in sm501fb_set_par_common.
Similar crashes have happened in other fbdev drivers.
We cannot find the default vaild value for pixclock for driver
sm501, so we fix this by checking whether 'pixclock' is zero.
Similar commit: commit 16844e58704 ("video: fbdev: tridentfb:
Error out if 'pixclock' equals zero")
Signed-off-by: Alex Guo <alexguo1023@...il.com>
---
drivers/video/fbdev/sm501fb.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/video/fbdev/sm501fb.c b/drivers/video/fbdev/sm501fb.c
index ed6f4f43e2d5..a294b4e1c4aa 100644
--- a/drivers/video/fbdev/sm501fb.c
+++ b/drivers/video/fbdev/sm501fb.c
@@ -506,7 +506,9 @@ static int sm501fb_set_par_common(struct fb_info *info,
fbi->regs + head_addr);
/* program CRT clock */
-
+
+ if (!var->pixclock)
+ return -EINVAL;
pixclock = sm501fb_ps_to_hz(var->pixclock);
sm501pixclock = sm501_set_clock(fbi->dev->parent, clock_type,
--
2.34.1
Powered by blists - more mailing lists