Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 19c1ea14 authored by Yan, Zheng's avatar Yan, Zheng Committed by David S. Miller
Browse files

ipv4: Fix fib_info->fib_metrics leak



Commit 4670994d(net,rcu: convert call_rcu(fc_rport_free_rcu) to
kfree_rcu()) introduced a memory leak. This patch reverts it.

Signed-off-by: default avatarZheng Yan <zheng.z.yan@intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4fb66b82
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -142,6 +142,14 @@ const struct fib_prop fib_props[RTN_MAX + 1] = {
};

/* Release a nexthop info record */
static void free_fib_info_rcu(struct rcu_head *head)
{
	struct fib_info *fi = container_of(head, struct fib_info, rcu);

	if (fi->fib_metrics != (u32 *) dst_default_metrics)
		kfree(fi->fib_metrics);
	kfree(fi);
}

void free_fib_info(struct fib_info *fi)
{
@@ -156,7 +164,7 @@ void free_fib_info(struct fib_info *fi)
	} endfor_nexthops(fi);
	fib_info_cnt--;
	release_net(fi->fib_net);
	kfree_rcu(fi, rcu);
	call_rcu(&fi->rcu, free_fib_info_rcu);
}

void fib_release_info(struct fib_info *fi)