[Devel] [PATCH 1/2] netns: fix NULL-dereference in dev_net()

Alexey Dobriyan adobriyan at gmail.com
Thu Aug 14 12:55:37 PDT 2008


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.



More information about the Containers mailing list