[PATCH] macintosh/ans-lcd: check ioremap() return value
Linkai Gong <[email protected]> Fri, 31 Jul 2026 17:41:44 +0800
| Newsgroups | gmane.linux.ports.ppc.embedded |
|---|---|
| Message-ID | <20260731094144.1820681-1-gonglinkai__5083.52831691212$1785501010$gmane$org@kylinos.cn> |
anslcd_init() used ioremap() without checking for failure and then
called anslcd_write_byte_*() which dereference anslcd_ptr. Return
-ENOMEM if the mapping fails.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Linkai Gong <[email protected]>
---
drivers/macintosh/ans-lcd.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/macintosh/ans-lcd.c b/drivers/macintosh/ans-lcd.c
index fa904b24a600..6ea7fb8666f7 100644
--- a/drivers/macintosh/ans-lcd.c
+++ b/drivers/macintosh/ans-lcd.c
@@ -168,9 +168,11 @@ anslcd_init(void)
of_node_put(node);
anslcd_ptr = ioremap(ANSLCD_ADDR, 0x20);
-
+ if (!anslcd_ptr)
+ return -ENOMEM;
+
retval = misc_register(&anslcd_dev);
- if(retval < 0){
+ if (retval < 0) {
printk(KERN_INFO "LCD: misc_register failed\n");
iounmap(anslcd_ptr);
return retval;
--
2.25.1