lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 23 Apr 2020 16:55:35 +0200 From: Bartlomiej Zolnierkiewicz <b.zolnierkie@...sung.com> To: Dejin Zheng <zhengdejin5@...il.com> Cc: gregkh@...uxfoundation.org, tglx@...utronix.de, FlorianSchandinat@....de, ralf@...ux-mips.org, tsbogend@...ha.franken.de, dri-devel@...ts.freedesktop.org, linux-fbdev@...r.kernel.org, linux-kernel@...r.kernel.org, Andy Shevchenko <andy.shevchenko@...il.com> Subject: Re: [PATCH v2] console: console: Complete exception handling in newport_probe() Hi, I believe that the patch summary line should be: "[PATCH v2] console: newport_con: ..." On 4/23/20 4:26 PM, Dejin Zheng wrote: > A call of the function ¡°do_take_over_console¡± can fail here. > The corresponding system resources were not released then. > Thus add a call of the function ¡°iounmap¡± together with the check > of a failure predicate. > > Fixes: e84de0c6190503 ("MIPS: GIO bus support for SGI IP22/28") I cannot see how this patch fixes commit e84de0c6190503 (AFAICS npregs has also been leaked on error before)? > CC: Andy Shevchenko <andy.shevchenko@...il.com> > Signed-off-by: Dejin Zheng <zhengdejin5@...il.com> > --- > v1 -> v2: > - modify the commit comments by Markus'suggestion. > > drivers/video/console/newport_con.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/video/console/newport_con.c b/drivers/video/console/newport_con.c > index 00dddf6e08b0..6bfc8e3ffd4a 100644 > --- a/drivers/video/console/newport_con.c > +++ b/drivers/video/console/newport_con.c > @@ -720,6 +720,9 @@ static int newport_probe(struct gio_device *dev, > console_lock(); > err = do_take_over_console(&newport_con, 0, MAX_NR_CONSOLES - 1, 1); > console_unlock(); > + > + if (err) > + iounmap((void *)npregs); Looks OK but while you are at it, could you please also add missing release_mem_region() on error and on device removal: newport_addr = dev->resource.start + 0xF0000; if (!request_mem_region(newport_addr, 0x10000, "Newport")) return -ENODEV; npregs = (struct newport_regs *)/* ioremap cannot fail */ ioremap(newport_addr, sizeof(struct newport_regs)); console_lock(); err = do_take_over_console(&newport_con, 0, MAX_NR_CONSOLES - 1, 1); console_unlock(); return err; } static void newport_remove(struct gio_device *dev) { give_up_console(&newport_con); iounmap((void *)npregs); } ? > return err; > } > Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics
Powered by blists - more mailing lists