]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
mtd: virt-concat: free duplicate generated name
authorXu Rao <raoxu@uniontech.com>
Fri, 26 Jun 2026 02:13:38 +0000 (10:13 +0800)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Fri, 3 Jul 2026 13:45:07 +0000 (15:45 +0200)
Every MTD registration runs mtd_virt_concat_create_join().  Once a
virtual concat has already been registered, the function builds the same
name again and takes the equal-name branch.  That branch skips to the
next item without freeing the newly allocated string.

Free the temporary name before continuing.

Fixes: 43db6366fc2d ("mtd: Add driver for concatenating devices")
Cc: stable@vger.kernel.org
Signed-off-by: Xu Rao <raoxu@uniontech.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
drivers/mtd/mtd_virt_concat.c

index c872a882771858cbe956338eee9dfc497f30628f..da4277ced4d63b0a2e387dfa5e826eb946c18da3 100644 (file)
@@ -321,8 +321,10 @@ int mtd_virt_concat_create_join(void)
 
                        if (concat->mtd.name) {
                                ret = memcmp(concat->mtd.name, name, name_sz);
-                               if (ret == 0)
+                               if (ret == 0) {
+                                       kfree(name);
                                        continue;
+                               }
                        }
                        mtd = mtd_concat_create(concat->subdev, concat->num_subdev, name);
                        if (!mtd) {