[source] ar71xx: fix invalid pointer dereference in c60_nand_scan_fixup()

LEDE Commits lede-commits at lists.infradead.org
Fri Dec 15 15:02:42 PST 2017


blogic pushed a commit to source.git, branch master:
https://git.lede-project.org/2ecc4131077b26ed8b95b88dea870b1f3a9444c2

commit 2ecc4131077b26ed8b95b88dea870b1f3a9444c2
Author: Gabor Juhos <juhosg at freemail.hu>
AuthorDate: Wed Dec 13 20:31:50 2017 +0100

    ar71xx: fix invalid pointer dereference in c60_nand_scan_fixup()
    
    Since Linux 4.6, mtd->priv no longer points to the NAND specific
    structure. Under 4.9 it contains NULL, thus using it to access
    the fields of the nand_chip structure causes an invalid pointer
    dereference.
    
    Update the code to use the mtd_to_nand() helper under 4.9 to obtain
    the address of the chip specific data.
    
    Compile tested only.
    
    Fixes: 7bbf4117c6fe ("ar71xx: Add kernel 4.9 support")
    Signed-off-by: Gabor Juhos <juhosg at freemail.hu>
    Tested-by: Christian Lamparter <chunkeey at gmail.com>
---
 target/linux/ar71xx/files/arch/mips/ath79/mach-c60.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-c60.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-c60.c
index 7b01af5..144f5db 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-c60.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-c60.c
@@ -180,7 +180,11 @@ static const struct mtd_ooblayout_ops c60_nand_ecclayout_ops = {
 
 static int c60_nand_scan_fixup(struct mtd_info *mtd)
 {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
 	struct nand_chip *chip = mtd->priv;
+#else
+	struct nand_chip *chip = mtd_to_nand(mtd);
+#endif
 
 	chip->ecc.size = 512;
 	chip->ecc.strength = 4;



More information about the lede-commits mailing list