projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
7e43968
)
mtd: nand: atmel: fix buffer overflow in atmel_pmecc_user
author
Richard Genoud
<
[email protected]
>
Wed, 27 Sep 2017 12:49:17 +0000
(14:49 +0200)
committer
Boris Brezillon
<
[email protected]
>
Wed, 27 Sep 2017 15:33:28 +0000
(17:33 +0200)
When calculating the size needed by struct atmel_pmecc_user *user,
the dmu and delta buffer sizes were forgotten.
This lead to a memory corruption (especially with a large ecc_strength).
Link:
http://lkml.kernel.org/r/
[email protected]
Fixes: f88fc122cc34 ("mtd: nand: Cleanup/rework the atmel_nand driver")
Cc:
[email protected]
Reported-by: Richard Genoud <
[email protected]
>
Pointed-at-by: Boris Brezillon <
[email protected]
>
Signed-off-by: Richard Genoud <
[email protected]
>
Reviewed-by: Nicolas Ferre <
[email protected]
>
Signed-off-by: Boris Brezillon <
[email protected]
>
drivers/mtd/nand/atmel/pmecc.c
patch
|
blob
|
history
diff --git
a/drivers/mtd/nand/atmel/pmecc.c
b/drivers/mtd/nand/atmel/pmecc.c
index 146af82183145d9d5164665aeaccdf789c4cca98..8268636675efc8b3d81959f0f1911a145c42fcc1 100644
(file)
--- a/
drivers/mtd/nand/atmel/pmecc.c
+++ b/
drivers/mtd/nand/atmel/pmecc.c
@@
-363,7
+363,7
@@
atmel_pmecc_create_user(struct atmel_pmecc *pmecc,
size += (req->ecc.strength + 1) * sizeof(u16);
/* Reserve space for mu, dmu and delta. */
size = ALIGN(size, sizeof(s32));
- size += (req->ecc.strength + 1) * sizeof(s32);
+ size += (req->ecc.strength + 1) * sizeof(s32)
* 3
;
user = kzalloc(size, GFP_KERNEL);
if (!user)