[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <4E76FE30.4000204@windriver.com>
Date: Mon, 19 Sep 2011 16:32:48 +0800
From: Rongqing Li <rongqing.li@...driver.com>
To: Eric Dumazet <eric.dumazet@...il.com>
CC: <netdev@...r.kernel.org>
Subject: Re: [PATCH 1/1] snmp6 relevant data structures are freed twice.
On 09/19/2011 04:29 PM, Eric Dumazet wrote:
> Le lundi 19 septembre 2011 à 15:03 +0800, rongqing.li@...driver.com a
> écrit :
>> From: Roy.Li<rongqing.li@...driver.com>
>>
>> When calling snmp6_alloc_dev fails, the snmp6 relevant memory
>> are freed by snmp6_alloc_dev. Calling in6_dev_finish_destroy
>> will free these memory twice.
>>
>> Double free will lead that undefined behavior occurs.
>>
>> Signed-off-by: Roy.Li<rongqing.li@...driver.com>
>> ---
>> net/ipv6/addrconf.c | 4 ++--
>> 1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
>> index 8f1e5be..ba01f72 100644
>> --- a/net/ipv6/addrconf.c
>> +++ b/net/ipv6/addrconf.c
>> @@ -374,8 +374,8 @@ static struct inet6_dev * ipv6_add_dev(struct net_device *dev)
>> "%s(): cannot allocate memory for statistics; dev=%s.\n",
>> __func__, dev->name));
>> neigh_parms_release(&nd_tbl, ndev->nd_parms);
>> - ndev->dead = 1;
>> - in6_dev_finish_destroy(ndev);
>> + dev_put(dev);
>> + kfree(ndev);
>> return NULL;
>> }
>>
>
> This seems a very old bug, and your fix applicable to old kernels as
> well, thanks.
>
> Could your patch title could be refined to the following ?
>
> 0) No need for the 1/1 suffix
> 1) include ipv6: prefix
> 2) change the message a bit, since normal operations are OK, only
> failure and error recovery is buggy.
>
> [PATCH] ipv6: fix a possible double free
>
> Acked-by: Eric Dumazet<eric.dumazet@...il.com>
>
>
>
Ok, I will resend it.
--
Best Reagrds,
Roy | RongQing Li
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists