mtd: nandsim: bugfix: fail if overridesize is too big
authorRichard Genoud <richard.genoud@gmail.com>
Wed, 12 Sep 2012 12:26:26 +0000 (14:26 +0200)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Sat, 29 Sep 2012 14:54:12 +0000 (15:54 +0100)
If override size is too big, the module was actually loaded instead of
failing, because retval was not set.

This lead to memory corruption with the use of the freed structs nandsim
and nand_chip.

Cc: stable@vger.kernel.org
Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/nand/nandsim.c

index 21e64b5d352b446b8211294a66331617d1b2ceb1..a932c485eb04f9c7b40c14c924c7aa172be71244 100644 (file)
@@ -2317,6 +2317,7 @@ static int __init ns_init_module(void)
                uint64_t new_size = (uint64_t)nsmtd->erasesize << overridesize;
                if (new_size >> overridesize != nsmtd->erasesize) {
                        NS_ERR("overridesize is too big\n");
+                       retval = -EINVAL;
                        goto err_exit;
                }
                /* N.B. This relies on nand_scan not doing anything with the size before we change it */
This page took 0.031261 seconds and 5 git commands to generate.