]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
rocker: Fix memory leak in ofdpa_port_fdb()
authorZiran Zhang <zhangcoder@yeah.net>
Tue, 16 Jun 2026 01:32:45 +0000 (09:32 +0800)
committerJakub Kicinski <kuba@kernel.org>
Mon, 22 Jun 2026 23:05:15 +0000 (16:05 -0700)
In ofdpa_port_fdb(), the hash_del() only unlinks the node from
hash table, but does not free it.

Fix this by adding kfree(found) after the !found == removing check,
where the pointer value is no longer needed.

Found by Coccinelle kfree script.

Cc: <stable+noautosel@kernel.org> # rocker is a test harness, it's never loaded on production systems
Signed-off-by: Ziran Zhang <zhangcoder@yeah.net>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://patch.msgid.link/20260616013245.7098-1-zhangcoder@yeah.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/rocker/rocker_ofdpa.c

index 66a8ae67c3ea847564e07ed5a723bc7d92ba1fd1..15d19a8a171014fe3472f3ba89bba53031f2424d 100644 (file)
@@ -1924,6 +1924,9 @@ static int ofdpa_port_fdb(struct ofdpa_port *ofdpa_port,
                flags |= OFDPA_OP_FLAG_REFRESH;
        }
 
+       if (found && removing)
+               kfree(found);
+
        return ofdpa_port_fdb_learn(ofdpa_port, flags, addr, vlan_id);
 }