From 4da5f435a56acf43b903d971101915fccbcb3e8e Mon Sep 17 00:00:00 2001 From: Pavel Emelyanov Date: Sun, 2 Dec 2007 00:21:52 +1100 Subject: [PATCH] --- yaml --- r: 78243 b: refs/heads/master c: f68635e627f9b21db05102e2d8fcd2894493d6bc h: refs/heads/master i: 78241: 17bfdda19e03826a1046db3c4fb76c64097d10f3 78239: 6a27dfcee3ca110bb8d538b612cc2da401da92d6 v: v3 --- [refs] | 2 +- trunk/net/ipv6/addrconf.c | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index 9a09465a3961..ec4272ccf959 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9fa896429905eccc263ff0d5e592ecaf651af12d +refs/heads/master: f68635e627f9b21db05102e2d8fcd2894493d6bc diff --git a/trunk/net/ipv6/addrconf.c b/trunk/net/ipv6/addrconf.c index f177424c186f..2d2886a0b66d 100644 --- a/trunk/net/ipv6/addrconf.c +++ b/trunk/net/ipv6/addrconf.c @@ -4127,7 +4127,8 @@ static void addrconf_sysctl_register(struct inet6_dev *idev, struct ipv6_devconf t = kmemdup(&addrconf_sysctl, sizeof(*t), GFP_KERNEL); if (t == NULL) - return; + goto out; + for (i=0; t->addrconf_vars[i].data; i++) { t->addrconf_vars[i].data += (char*)p - (char*)&ipv6_devconf; t->addrconf_vars[i].extra1 = idev; /* embedded; no ref */ @@ -4147,7 +4148,7 @@ static void addrconf_sysctl_register(struct inet6_dev *idev, struct ipv6_devconf */ dev_name = kstrdup(dev_name, GFP_KERNEL); if (!dev_name) - goto free; + goto free; t->addrconf_dev[0].procname = dev_name; @@ -4159,16 +4160,15 @@ static void addrconf_sysctl_register(struct inet6_dev *idev, struct ipv6_devconf t->sysctl_header = register_sysctl_table(t->addrconf_root_dir); if (t->sysctl_header == NULL) goto free_procname; - else - p->sysctl = t; + + p->sysctl = t; return; - /* error path */ - free_procname: +free_procname: kfree(dev_name); - free: +free: kfree(t); - +out: return; }