summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWang Jun <1742789905@qq.com>2026-03-10 04:14:20 +0300
committerHelge Deller <deller@gmx.de>2026-03-10 19:32:35 +0300
commitf044788088ef55e9855b17b7984ffe522c40c093 (patch)
tree7b99d6019779538225f1823edf21d184e2d7e2f4
parentdb65872b38dc9f18a62669d6ae1e4ec7868a85a9 (diff)
downloadlinux-f044788088ef55e9855b17b7984ffe522c40c093.tar.xz
fbdev: viafb: check ioremap return value in viafb_lcd_get_mobile_state
The function viafb_lcd_get_mobile_state() calls ioremap() without checking the return value. If ioremap() fails (returns NULL), the subsequent readw() will cause a NULL pointer dereference. Signed-off-by: Wang Jun <1742789905@qq.com> Signed-off-by: Helge Deller <deller@gmx.de>
-rw-r--r--drivers/video/fbdev/via/lcd.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/video/fbdev/via/lcd.c b/drivers/video/fbdev/via/lcd.c
index 8673fced8749..3fa2304fbda7 100644
--- a/drivers/video/fbdev/via/lcd.c
+++ b/drivers/video/fbdev/via/lcd.c
@@ -954,6 +954,9 @@ bool viafb_lcd_get_mobile_state(bool *mobile)
u16 start_pattern;
biosptr = ioremap(romaddr, 0x10000);
+ if (!biosptr)
+ return false;
+
start_pattern = readw(biosptr);
/* Compare pattern */