[Devel] [PATCH 1/2] netns: fix NULL-dereference in dev_net()
Brian Haley
brian.haley at hp.com
Thu Aug 14 13:01:34 PDT 2008
Alexey Dobriyan wrote:
> On Thu, Aug 14, 2008 at 03:27:25PM -0400, Brian Haley wrote:
>> Change dev_net() to handle a NULL argument - return &init_net instead.
>
>> --- a/include/linux/netdevice.h
>> +++ b/include/linux/netdevice.h
>> @@ -781,10 +781,10 @@ static inline
>> struct net *dev_net(const struct net_device *dev)
>> {
>> #ifdef CONFIG_NET_NS
>> - return dev->nd_net;
>> -#else
>> - return &init_net;
>> + if (dev)
>> + return dev->nd_net;
>> #endif
>> + return &init_net;
>> }
>
> This is ugly and wrong.
>
> The only assymetry between init_net and dynamically created netns is
> that some data structures are created only when init_net is initialized
> like some kmem caches and so on.
>
> And some sysctls that some people may ban in netns.
>
> Modulo that, init_net is no different from the rest.
So would you rather have all the callers that aren't net-namespace aware
pass &init_net? That seemed like a worse solution to me.
-Brian
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
More information about the Devel
mailing list