]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mtd: rawnand: fix double free in atmel_pmecc_create_user()
authorDan Carpenter <dan.carpenter@linaro.org>
Wed, 23 Oct 2024 08:40:56 +0000 (11:40 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jan 2025 12:24:57 +0000 (13:24 +0100)
commit d8e4771f99c0400a1873235704b28bb803c83d17 upstream.

The "user" pointer was converted from being allocated with kzalloc() to
being allocated by devm_kzalloc().  Calling kfree(user) will lead to a
double free.

Fixes: 6d734f1bfc33 ("mtd: rawnand: atmel: Fix possible memory leak")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mtd/nand/raw/atmel/pmecc.c

index 09848d13802d880140ed0e0c3c80836cbbe950bd..d1ed5878b3b1f31a4859d6c8b481aa4baa1fb484 100644 (file)
@@ -380,10 +380,8 @@ atmel_pmecc_create_user(struct atmel_pmecc *pmecc,
        user->delta = user->dmu + req->ecc.strength + 1;
 
        gf_tables = atmel_pmecc_get_gf_tables(req);
-       if (IS_ERR(gf_tables)) {
-               kfree(user);
+       if (IS_ERR(gf_tables))
                return ERR_CAST(gf_tables);
-       }
 
        user->gf_tables = gf_tables;