[PATCH 1/6] [IPV4]: Fix memory leak on error path during FIB initialization.



net->ipv4.fib_table_hash is not freed when fib4_rules_init failed. The problem
has been introduced by the following commit.
commit c8050bf6d84785a7edd2e81591e8f833231477e8
Author: Denis V. Lunev <den@xxxxxxxxxx>
Date: Thu Jan 10 03:28:24 2008 -0800

Signed-off-by: Denis V. Lunev <den@xxxxxxxxxx>
---
net/ipv4/fib_frontend.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
index d282618..d0507f4 100644
--- a/net/ipv4/fib_frontend.c
+++ b/net/ipv4/fib_frontend.c
@@ -975,6 +975,7 @@ static struct notifier_block fib_netdev_notifier = {

static int __net_init ip_fib_net_init(struct net *net)
{
+ int err;
unsigned int i;

net->ipv4.fib_table_hash = kzalloc(
@@ -985,7 +986,14 @@ static int __net_init ip_fib_net_init(struct net *net)
for (i = 0; i < FIB_TABLE_HASHSZ; i++)
INIT_HLIST_HEAD(&net->ipv4.fib_table_hash[i]);

- return fib4_rules_init(net);
+ err = fib4_rules_init(net);
+ if (err < 0)
+ goto fail;
+ return 0;
+
+fail:
+ kfree(net->ipv4.fib_table_hash);
+ return err;
}

static void __net_exit ip_fib_net_exit(struct net *net)
--
1.5.3.rc5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: tricky TimeSpan editing
    ... you grab all of the TimeEntrys for the person for the day and the time ... fail. ... You want to commit each user change as it ... updates / inserts must succeed or fail together as a _transaction_. ...
    (microsoft.public.dotnet.languages.csharp)

  • ... This commit ... headers_check fail like this. ... which does not exist in exported headers ... Please read the FAQ at http://www.tux.org/lkml/ ...
    (Linux-Kernel)
  • [patch 32/38] USB: fix pm counter leak in usblp
    ... commit 1902869019918411c148c18cc3a22aade569ac9a upstream ... if you fail in openyou must decrement the pm counter again. ...
    (Linux-Kernel)
  • Re: linux-next: Tree for April 28
    ... I had to add a commit ... removing two top level localversion-.. ... files as they caused the creation ... of utsrelease.h to fail. ...
    (Linux-Kernel)
  • Re: Application-specific memory overcommitment
    ... > allocations would fail earlier, limiting their usage to a lower ... commit to the memory, the only way we could live up ...
    (comp.os.linux.development.system)