net: dsa: mv88e6xxx: Fix memleak in mv88e6xxx_region_atu_snapshot
authorzhangxiaoxu <zhangxiaoxu5@huawei.com>
Mon, 9 Nov 2020 14:44:16 +0000 (09:44 -0500)
committerJakub Kicinski <kuba@kernel.org>
Wed, 11 Nov 2020 01:49:06 +0000 (17:49 -0800)
When mv88e6xxx_fid_map return error, we lost free the table.

Fix it.

Fixes: bfb255428966 ("net: dsa: mv88e6xxx: Add devlink regions")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: zhangxiaoxu <zhangxiaoxu5@huawei.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20201109144416.1540867-1-zhangxiaoxu5@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/mv88e6xxx/devlink.c

index 10cd1bf..ade04c0 100644 (file)
@@ -393,8 +393,10 @@ static int mv88e6xxx_region_atu_snapshot(struct devlink *dl,
        mv88e6xxx_reg_lock(chip);
 
        err = mv88e6xxx_fid_map(chip, fid_bitmap);
-       if (err)
+       if (err) {
+               kfree(table);
                goto out;
+       }
 
        while (1) {
                fid = find_next_bit(fid_bitmap, MV88E6XXX_N_FID, fid + 1);