]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mcb: fix a double free bug in chameleon_parse_gdd()
authorHaoxiang Li <haoxiang_li2024@163.com>
Mon, 10 Mar 2025 08:46:57 +0000 (09:46 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 May 2025 05:41:16 +0000 (07:41 +0200)
commit 7c7f1bfdb2249f854a736d9b79778c7e5a29a150 upstream.

In chameleon_parse_gdd(), if mcb_device_register() fails, 'mdev'
would be released in mcb_device_register() via put_device().
Thus, goto 'err' label and free 'mdev' again causes a double free.
Just return if mcb_device_register() fails.

Fixes: 3764e82e5150 ("drivers: Introduce MEN Chameleon Bus")
Cc: stable <stable@kernel.org>
Signed-off-by: Haoxiang Li <haoxiang_li2024@163.com>
Signed-off-by: Johannes Thumshirn <jth@kernel.org>
Link: https://lore.kernel.org/r/6201d09e2975ae5789879f79a6de4c38de9edd4a.1741596225.git.jth@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mcb/mcb-parse.c

index 1ae37e693de045a36fefec1eb4c91229483263d6..d080e21df666d91cf7895c94a8ec4a1e04544bb7 100644 (file)
@@ -101,7 +101,7 @@ static int chameleon_parse_gdd(struct mcb_bus *bus,
 
        ret = mcb_device_register(bus, mdev);
        if (ret < 0)
-               goto err;
+               return ret;
 
        return 0;