mtd: nandsim: bugfix: fail if overridesize is too big
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>
This commit is contained in:
parent
5bf3d66a93
commit
bb0a13a134
|
@ -2317,6 +2317,7 @@ static int __init ns_init_module(void)
|
||||||
uint64_t new_size = (uint64_t)nsmtd->erasesize << overridesize;
|
uint64_t new_size = (uint64_t)nsmtd->erasesize << overridesize;
|
||||||
if (new_size >> overridesize != nsmtd->erasesize) {
|
if (new_size >> overridesize != nsmtd->erasesize) {
|
||||||
NS_ERR("overridesize is too big\n");
|
NS_ERR("overridesize is too big\n");
|
||||||
|
retval = -EINVAL;
|
||||||
goto err_exit;
|
goto err_exit;
|
||||||
}
|
}
|
||||||
/* N.B. This relies on nand_scan not doing anything with the size before we change it */
|
/* N.B. This relies on nand_scan not doing anything with the size before we change it */
|
||||||
|
|
Loading…
Reference in a new issue